From 03bd5466aebfd55511704086ca66ec27236acff9 Mon Sep 17 00:00:00 2001 From: Max Desiatov Date: Tue, 3 May 2022 10:59:36 +0100 Subject: [PATCH 1/3] Add `mediacapture-streams` IDL spec and generated code --- Sources/DOMKit/Generated.swift | 1298 ++++++++++++++++++++++++++++++-- parse-idl/parse-all.js | 3 +- 2 files changed, 1238 insertions(+), 63 deletions(-) diff --git a/Sources/DOMKit/Generated.swift b/Sources/DOMKit/Generated.swift index f2a075f0..907d355b 100644 --- a/Sources/DOMKit/Generated.swift +++ b/Sources/DOMKit/Generated.swift @@ -1155,6 +1155,22 @@ public class CacheStorage: JSBridgedClass { } } +public class CameraDevicePermissionDescriptor: BridgedDictionary { + public convenience init(panTiltZoom: Bool) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.panTiltZoom] = panTiltZoom.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _panTiltZoom = ReadWriteAttribute(jsObject: object, name: Strings.panTiltZoom) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var panTiltZoom: Bool +} + public enum CanPlayTypeResult: JSString, JSValueCompatible { case _empty = "" case maybe = "maybe" @@ -2222,6 +2238,90 @@ public class ComputedEffectTiming: BridgedDictionary { public var currentIteration: Double? } +public class ConstrainBooleanParameters: BridgedDictionary { + public convenience init(exact: Bool, ideal: Bool) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.exact] = exact.jsValue + object[Strings.ideal] = ideal.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _exact = ReadWriteAttribute(jsObject: object, name: Strings.exact) + _ideal = ReadWriteAttribute(jsObject: object, name: Strings.ideal) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var exact: Bool + + @ReadWriteAttribute + public var ideal: Bool +} + +public class ConstrainDOMStringParameters: BridgedDictionary { + public convenience init(exact: String_or_seq_of_String, ideal: String_or_seq_of_String) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.exact] = exact.jsValue + object[Strings.ideal] = ideal.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _exact = ReadWriteAttribute(jsObject: object, name: Strings.exact) + _ideal = ReadWriteAttribute(jsObject: object, name: Strings.ideal) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var exact: String_or_seq_of_String + + @ReadWriteAttribute + public var ideal: String_or_seq_of_String +} + +public class ConstrainDoubleRange: BridgedDictionary { + public convenience init(exact: Double, ideal: Double) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.exact] = exact.jsValue + object[Strings.ideal] = ideal.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _exact = ReadWriteAttribute(jsObject: object, name: Strings.exact) + _ideal = ReadWriteAttribute(jsObject: object, name: Strings.ideal) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var exact: Double + + @ReadWriteAttribute + public var ideal: Double +} + +public class ConstrainULongRange: BridgedDictionary { + public convenience init(exact: UInt32, ideal: UInt32) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.exact] = exact.jsValue + object[Strings.ideal] = ideal.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _exact = ReadWriteAttribute(jsObject: object, name: Strings.exact) + _ideal = ReadWriteAttribute(jsObject: object, name: Strings.ideal) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var exact: UInt32 + + @ReadWriteAttribute + public var ideal: UInt32 +} + public class CountQueuingStrategy: JSBridgedClass { @inlinable public class var constructor: JSFunction { JSObject.global[Strings.CountQueuingStrategy].function! } @@ -3625,6 +3725,22 @@ public class DataTransferItemList: JSBridgedClass { } } +public class DevicePermissionDescriptor: BridgedDictionary { + public convenience init(deviceId: String) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.deviceId] = deviceId.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _deviceId = ReadWriteAttribute(jsObject: object, name: Strings.deviceId) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var deviceId: String +} + public class Document: Node, NonElementParentNode, DocumentOrShadowRoot, ParentNode, XPathEvaluatorBase, GlobalEventHandlers, DocumentAndElementEventHandlers { @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.Document].function! } @@ -4098,6 +4214,27 @@ public enum DocumentVisibilityState: JSString, JSValueCompatible { @inlinable public var jsValue: JSValue { rawValue.jsValue } } +public class DoubleRange: BridgedDictionary { + public convenience init(max: Double, min: Double) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.max] = max.jsValue + object[Strings.min] = min.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _max = ReadWriteAttribute(jsObject: object, name: Strings.max) + _min = ReadWriteAttribute(jsObject: object, name: Strings.min) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var max: Double + + @ReadWriteAttribute + public var min: Double +} + public class DragEvent: MouseEvent { @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.DragEvent].function! } @@ -9326,6 +9463,19 @@ public enum ImageSmoothingQuality: JSString, JSValueCompatible { @inlinable public var jsValue: JSValue { rawValue.jsValue } } +public class InputDeviceInfo: MediaDeviceInfo { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.InputDeviceInfo].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public func getCapabilities() -> MediaTrackCapabilities { + let this = jsObject + return this[Strings.getCapabilities].function!(this: this, arguments: []).fromJSValue()! + } +} + public class InputEvent: UIEvent { @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.InputEvent].function! } @@ -9651,6 +9801,97 @@ public class Location: JSBridgedClass { public var ancestorOrigins: DOMStringList } +public class MediaDeviceInfo: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.MediaDeviceInfo].function! } + + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { + _deviceId = ReadonlyAttribute(jsObject: jsObject, name: Strings.deviceId) + _kind = ReadonlyAttribute(jsObject: jsObject, name: Strings.kind) + _label = ReadonlyAttribute(jsObject: jsObject, name: Strings.label) + _groupId = ReadonlyAttribute(jsObject: jsObject, name: Strings.groupId) + self.jsObject = jsObject + } + + @ReadonlyAttribute + public var deviceId: String + + @ReadonlyAttribute + public var kind: MediaDeviceKind + + @ReadonlyAttribute + public var label: String + + @ReadonlyAttribute + public var groupId: String + + @inlinable public func toJSON() -> JSObject { + let this = jsObject + return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()! + } +} + +public enum MediaDeviceKind: JSString, JSValueCompatible { + case audioinput = "audioinput" + case audiooutput = "audiooutput" + case videoinput = "videoinput" + + @inlinable public static func construct(from jsValue: JSValue) -> Self? { + if let string = jsValue.jsString { + return Self(rawValue: string) + } + return nil + } + + @inlinable public init?(string: String) { + self.init(rawValue: JSString(string)) + } + + @inlinable public var jsValue: JSValue { rawValue.jsValue } +} + +public class MediaDevices: EventTarget { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.MediaDevices].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _ondevicechange = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.ondevicechange) + super.init(unsafelyWrapping: jsObject) + } + + @ClosureAttribute1Optional + public var ondevicechange: EventHandler + + @inlinable public func enumerateDevices() -> JSPromise { + let this = jsObject + return this[Strings.enumerateDevices].function!(this: this, arguments: []).fromJSValue()! + } + + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public func enumerateDevices() async throws -> [MediaDeviceInfo] { + let this = jsObject + let _promise: JSPromise = this[Strings.enumerateDevices].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + + @inlinable public func getSupportedConstraints() -> MediaTrackSupportedConstraints { + let this = jsObject + return this[Strings.getSupportedConstraints].function!(this: this, arguments: []).fromJSValue()! + } + + @inlinable public func getUserMedia(constraints: MediaStreamConstraints? = nil) -> JSPromise { + let this = jsObject + return this[Strings.getUserMedia].function!(this: this, arguments: [constraints?.jsValue ?? .undefined]).fromJSValue()! + } + + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public func getUserMedia(constraints: MediaStreamConstraints? = nil) async throws -> MediaStream { + let this = jsObject + let _promise: JSPromise = this[Strings.getUserMedia].function!(this: this, arguments: [constraints?.jsValue ?? .undefined]).fromJSValue()! + return try await _promise.value.fromJSValue()! + } +} + public class MediaError: JSBridgedClass { @inlinable public class var constructor: JSFunction { JSObject.global[Strings.MediaError].function! } @@ -9677,104 +9918,687 @@ public class MediaError: JSBridgedClass { public var message: String } -public class MessageChannel: JSBridgedClass { - @inlinable public class var constructor: JSFunction { JSObject.global[Strings.MessageChannel].function! } - - public let jsObject: JSObject +public class MediaStream: EventTarget { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.MediaStream].function! } public required init(unsafelyWrapping jsObject: JSObject) { - _port1 = ReadonlyAttribute(jsObject: jsObject, name: Strings.port1) - _port2 = ReadonlyAttribute(jsObject: jsObject, name: Strings.port2) - self.jsObject = jsObject + _id = ReadonlyAttribute(jsObject: jsObject, name: Strings.id) + _active = ReadonlyAttribute(jsObject: jsObject, name: Strings.active) + _onaddtrack = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onaddtrack) + _onremovetrack = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onremovetrack) + super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor.new(arguments: [])) } - @ReadonlyAttribute - public var port1: MessagePort + @inlinable public convenience init(stream: MediaStream) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [stream.jsValue])) + } + + @inlinable public convenience init(tracks: [MediaStreamTrack]) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [tracks.jsValue])) + } @ReadonlyAttribute - public var port2: MessagePort -} + public var id: String -public class MessageEvent: Event { - @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.MessageEvent].function! } + @inlinable public func getAudioTracks() -> [MediaStreamTrack] { + let this = jsObject + return this[Strings.getAudioTracks].function!(this: this, arguments: []).fromJSValue()! + } - public required init(unsafelyWrapping jsObject: JSObject) { - _data = ReadonlyAttribute(jsObject: jsObject, name: Strings.data) - _origin = ReadonlyAttribute(jsObject: jsObject, name: Strings.origin) - _lastEventId = ReadonlyAttribute(jsObject: jsObject, name: Strings.lastEventId) - _source = ReadonlyAttribute(jsObject: jsObject, name: Strings.source) - _ports = ReadonlyAttribute(jsObject: jsObject, name: Strings.ports) - super.init(unsafelyWrapping: jsObject) + @inlinable public func getVideoTracks() -> [MediaStreamTrack] { + let this = jsObject + return this[Strings.getVideoTracks].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public convenience init(type: String, eventInitDict: MessageEventInit? = nil) { - self.init(unsafelyWrapping: Self.constructor.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined])) + @inlinable public func getTracks() -> [MediaStreamTrack] { + let this = jsObject + return this[Strings.getTracks].function!(this: this, arguments: []).fromJSValue()! } - @ReadonlyAttribute - public var data: JSValue + @inlinable public func getTrackById(trackId: String) -> MediaStreamTrack? { + let this = jsObject + return this[Strings.getTrackById].function!(this: this, arguments: [trackId.jsValue]).fromJSValue()! + } - @ReadonlyAttribute - public var origin: String + @inlinable public func addTrack(track: MediaStreamTrack) { + let this = jsObject + _ = this[Strings.addTrack].function!(this: this, arguments: [track.jsValue]) + } - @ReadonlyAttribute - public var lastEventId: String + @inlinable public func removeTrack(track: MediaStreamTrack) { + let this = jsObject + _ = this[Strings.removeTrack].function!(this: this, arguments: [track.jsValue]) + } - @ReadonlyAttribute - public var source: MessageEventSource? + @inlinable public func clone() -> Self { + let this = jsObject + return this[Strings.clone].function!(this: this, arguments: []).fromJSValue()! + } @ReadonlyAttribute - public var ports: [MessagePort] + public var active: Bool - @inlinable public func initMessageEvent(type: String, bubbles: Bool? = nil, cancelable: Bool? = nil, data: JSValue? = nil, origin: String? = nil, lastEventId: String? = nil, source: MessageEventSource? = nil, ports: [MessagePort]? = nil) { - let _arg0 = type.jsValue - let _arg1 = bubbles?.jsValue ?? .undefined - let _arg2 = cancelable?.jsValue ?? .undefined - let _arg3 = data?.jsValue ?? .undefined - let _arg4 = origin?.jsValue ?? .undefined - let _arg5 = lastEventId?.jsValue ?? .undefined - let _arg6 = source?.jsValue ?? .undefined - let _arg7 = ports?.jsValue ?? .undefined - let this = jsObject - _ = this[Strings.initMessageEvent].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7]) - } + @ClosureAttribute1Optional + public var onaddtrack: EventHandler + + @ClosureAttribute1Optional + public var onremovetrack: EventHandler } -public class MessageEventInit: BridgedDictionary { - public convenience init(data: JSValue, origin: String, lastEventId: String, source: MessageEventSource?, ports: [MessagePort]) { +public class MediaStreamConstraints: BridgedDictionary { + public convenience init(video: Bool_or_MediaTrackConstraints, audio: Bool_or_MediaTrackConstraints) { let object = JSObject.global[Strings.Object].function!.new() - object[Strings.data] = data.jsValue - object[Strings.origin] = origin.jsValue - object[Strings.lastEventId] = lastEventId.jsValue - object[Strings.source] = source.jsValue - object[Strings.ports] = ports.jsValue + object[Strings.video] = video.jsValue + object[Strings.audio] = audio.jsValue self.init(unsafelyWrapping: object) } public required init(unsafelyWrapping object: JSObject) { - _data = ReadWriteAttribute(jsObject: object, name: Strings.data) - _origin = ReadWriteAttribute(jsObject: object, name: Strings.origin) - _lastEventId = ReadWriteAttribute(jsObject: object, name: Strings.lastEventId) - _source = ReadWriteAttribute(jsObject: object, name: Strings.source) - _ports = ReadWriteAttribute(jsObject: object, name: Strings.ports) + _video = ReadWriteAttribute(jsObject: object, name: Strings.video) + _audio = ReadWriteAttribute(jsObject: object, name: Strings.audio) super.init(unsafelyWrapping: object) } @ReadWriteAttribute - public var data: JSValue - - @ReadWriteAttribute - public var origin: String + public var video: Bool_or_MediaTrackConstraints @ReadWriteAttribute - public var lastEventId: String + public var audio: Bool_or_MediaTrackConstraints +} - @ReadWriteAttribute - public var source: MessageEventSource? +public class MediaStreamTrack: EventTarget { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.MediaStreamTrack].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _kind = ReadonlyAttribute(jsObject: jsObject, name: Strings.kind) + _id = ReadonlyAttribute(jsObject: jsObject, name: Strings.id) + _label = ReadonlyAttribute(jsObject: jsObject, name: Strings.label) + _enabled = ReadWriteAttribute(jsObject: jsObject, name: Strings.enabled) + _muted = ReadonlyAttribute(jsObject: jsObject, name: Strings.muted) + _onmute = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onmute) + _onunmute = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onunmute) + _readyState = ReadonlyAttribute(jsObject: jsObject, name: Strings.readyState) + _onended = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onended) + super.init(unsafelyWrapping: jsObject) + } + + @ReadonlyAttribute + public var kind: String + + @ReadonlyAttribute + public var id: String + + @ReadonlyAttribute + public var label: String + + @ReadWriteAttribute + public var enabled: Bool + + @ReadonlyAttribute + public var muted: Bool + + @ClosureAttribute1Optional + public var onmute: EventHandler + + @ClosureAttribute1Optional + public var onunmute: EventHandler + + @ReadonlyAttribute + public var readyState: MediaStreamTrackState + + @ClosureAttribute1Optional + public var onended: EventHandler + + @inlinable public func clone() -> Self { + let this = jsObject + return this[Strings.clone].function!(this: this, arguments: []).fromJSValue()! + } + + @inlinable public func stop() { + let this = jsObject + _ = this[Strings.stop].function!(this: this, arguments: []) + } + + @inlinable public func getCapabilities() -> MediaTrackCapabilities { + let this = jsObject + return this[Strings.getCapabilities].function!(this: this, arguments: []).fromJSValue()! + } + + @inlinable public func getConstraints() -> MediaTrackConstraints { + let this = jsObject + return this[Strings.getConstraints].function!(this: this, arguments: []).fromJSValue()! + } + + @inlinable public func getSettings() -> MediaTrackSettings { + let this = jsObject + return this[Strings.getSettings].function!(this: this, arguments: []).fromJSValue()! + } + + @inlinable public func applyConstraints(constraints: MediaTrackConstraints? = nil) -> JSPromise { + let this = jsObject + return this[Strings.applyConstraints].function!(this: this, arguments: [constraints?.jsValue ?? .undefined]).fromJSValue()! + } + + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public func applyConstraints(constraints: MediaTrackConstraints? = nil) async throws { + let this = jsObject + let _promise: JSPromise = this[Strings.applyConstraints].function!(this: this, arguments: [constraints?.jsValue ?? .undefined]).fromJSValue()! + _ = try await _promise.value + } +} + +public class MediaStreamTrackEvent: Event { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.MediaStreamTrackEvent].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _track = ReadonlyAttribute(jsObject: jsObject, name: Strings.track) + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(type: String, eventInitDict: MediaStreamTrackEventInit) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [type.jsValue, eventInitDict.jsValue])) + } + + @ReadonlyAttribute + public var track: MediaStreamTrack +} + +public class MediaStreamTrackEventInit: BridgedDictionary { + public convenience init(track: MediaStreamTrack) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.track] = track.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _track = ReadWriteAttribute(jsObject: object, name: Strings.track) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var track: MediaStreamTrack +} + +public enum MediaStreamTrackState: JSString, JSValueCompatible { + case live = "live" + case ended = "ended" + + @inlinable public static func construct(from jsValue: JSValue) -> Self? { + if let string = jsValue.jsString { + return Self(rawValue: string) + } + return nil + } + + @inlinable public init?(string: String) { + self.init(rawValue: JSString(string)) + } + + @inlinable public var jsValue: JSValue { rawValue.jsValue } +} + +public class MediaTrackCapabilities: BridgedDictionary { + public convenience init(width: ULongRange, height: ULongRange, aspectRatio: DoubleRange, frameRate: DoubleRange, facingMode: [String], resizeMode: [String], sampleRate: ULongRange, sampleSize: ULongRange, echoCancellation: [Bool], autoGainControl: [Bool], noiseSuppression: [Bool], latency: DoubleRange, channelCount: ULongRange, deviceId: String, groupId: String) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.width] = width.jsValue + object[Strings.height] = height.jsValue + object[Strings.aspectRatio] = aspectRatio.jsValue + object[Strings.frameRate] = frameRate.jsValue + object[Strings.facingMode] = facingMode.jsValue + object[Strings.resizeMode] = resizeMode.jsValue + object[Strings.sampleRate] = sampleRate.jsValue + object[Strings.sampleSize] = sampleSize.jsValue + object[Strings.echoCancellation] = echoCancellation.jsValue + object[Strings.autoGainControl] = autoGainControl.jsValue + object[Strings.noiseSuppression] = noiseSuppression.jsValue + object[Strings.latency] = latency.jsValue + object[Strings.channelCount] = channelCount.jsValue + object[Strings.deviceId] = deviceId.jsValue + object[Strings.groupId] = groupId.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _width = ReadWriteAttribute(jsObject: object, name: Strings.width) + _height = ReadWriteAttribute(jsObject: object, name: Strings.height) + _aspectRatio = ReadWriteAttribute(jsObject: object, name: Strings.aspectRatio) + _frameRate = ReadWriteAttribute(jsObject: object, name: Strings.frameRate) + _facingMode = ReadWriteAttribute(jsObject: object, name: Strings.facingMode) + _resizeMode = ReadWriteAttribute(jsObject: object, name: Strings.resizeMode) + _sampleRate = ReadWriteAttribute(jsObject: object, name: Strings.sampleRate) + _sampleSize = ReadWriteAttribute(jsObject: object, name: Strings.sampleSize) + _echoCancellation = ReadWriteAttribute(jsObject: object, name: Strings.echoCancellation) + _autoGainControl = ReadWriteAttribute(jsObject: object, name: Strings.autoGainControl) + _noiseSuppression = ReadWriteAttribute(jsObject: object, name: Strings.noiseSuppression) + _latency = ReadWriteAttribute(jsObject: object, name: Strings.latency) + _channelCount = ReadWriteAttribute(jsObject: object, name: Strings.channelCount) + _deviceId = ReadWriteAttribute(jsObject: object, name: Strings.deviceId) + _groupId = ReadWriteAttribute(jsObject: object, name: Strings.groupId) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var width: ULongRange + + @ReadWriteAttribute + public var height: ULongRange + + @ReadWriteAttribute + public var aspectRatio: DoubleRange + + @ReadWriteAttribute + public var frameRate: DoubleRange + + @ReadWriteAttribute + public var facingMode: [String] + + @ReadWriteAttribute + public var resizeMode: [String] + + @ReadWriteAttribute + public var sampleRate: ULongRange + + @ReadWriteAttribute + public var sampleSize: ULongRange + + @ReadWriteAttribute + public var echoCancellation: [Bool] + + @ReadWriteAttribute + public var autoGainControl: [Bool] + + @ReadWriteAttribute + public var noiseSuppression: [Bool] + + @ReadWriteAttribute + public var latency: DoubleRange + + @ReadWriteAttribute + public var channelCount: ULongRange + + @ReadWriteAttribute + public var deviceId: String + + @ReadWriteAttribute + public var groupId: String +} + +public class MediaTrackConstraintSet: BridgedDictionary { + public convenience init(width: ConstrainULong, height: ConstrainULong, aspectRatio: ConstrainDouble, frameRate: ConstrainDouble, facingMode: ConstrainDOMString, resizeMode: ConstrainDOMString, sampleRate: ConstrainULong, sampleSize: ConstrainULong, echoCancellation: ConstrainBoolean, autoGainControl: ConstrainBoolean, noiseSuppression: ConstrainBoolean, latency: ConstrainDouble, channelCount: ConstrainULong, deviceId: ConstrainDOMString, groupId: ConstrainDOMString) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.width] = width.jsValue + object[Strings.height] = height.jsValue + object[Strings.aspectRatio] = aspectRatio.jsValue + object[Strings.frameRate] = frameRate.jsValue + object[Strings.facingMode] = facingMode.jsValue + object[Strings.resizeMode] = resizeMode.jsValue + object[Strings.sampleRate] = sampleRate.jsValue + object[Strings.sampleSize] = sampleSize.jsValue + object[Strings.echoCancellation] = echoCancellation.jsValue + object[Strings.autoGainControl] = autoGainControl.jsValue + object[Strings.noiseSuppression] = noiseSuppression.jsValue + object[Strings.latency] = latency.jsValue + object[Strings.channelCount] = channelCount.jsValue + object[Strings.deviceId] = deviceId.jsValue + object[Strings.groupId] = groupId.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _width = ReadWriteAttribute(jsObject: object, name: Strings.width) + _height = ReadWriteAttribute(jsObject: object, name: Strings.height) + _aspectRatio = ReadWriteAttribute(jsObject: object, name: Strings.aspectRatio) + _frameRate = ReadWriteAttribute(jsObject: object, name: Strings.frameRate) + _facingMode = ReadWriteAttribute(jsObject: object, name: Strings.facingMode) + _resizeMode = ReadWriteAttribute(jsObject: object, name: Strings.resizeMode) + _sampleRate = ReadWriteAttribute(jsObject: object, name: Strings.sampleRate) + _sampleSize = ReadWriteAttribute(jsObject: object, name: Strings.sampleSize) + _echoCancellation = ReadWriteAttribute(jsObject: object, name: Strings.echoCancellation) + _autoGainControl = ReadWriteAttribute(jsObject: object, name: Strings.autoGainControl) + _noiseSuppression = ReadWriteAttribute(jsObject: object, name: Strings.noiseSuppression) + _latency = ReadWriteAttribute(jsObject: object, name: Strings.latency) + _channelCount = ReadWriteAttribute(jsObject: object, name: Strings.channelCount) + _deviceId = ReadWriteAttribute(jsObject: object, name: Strings.deviceId) + _groupId = ReadWriteAttribute(jsObject: object, name: Strings.groupId) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var width: ConstrainULong + + @ReadWriteAttribute + public var height: ConstrainULong + + @ReadWriteAttribute + public var aspectRatio: ConstrainDouble + + @ReadWriteAttribute + public var frameRate: ConstrainDouble + + @ReadWriteAttribute + public var facingMode: ConstrainDOMString + + @ReadWriteAttribute + public var resizeMode: ConstrainDOMString + + @ReadWriteAttribute + public var sampleRate: ConstrainULong + + @ReadWriteAttribute + public var sampleSize: ConstrainULong + + @ReadWriteAttribute + public var echoCancellation: ConstrainBoolean + + @ReadWriteAttribute + public var autoGainControl: ConstrainBoolean + + @ReadWriteAttribute + public var noiseSuppression: ConstrainBoolean + + @ReadWriteAttribute + public var latency: ConstrainDouble + + @ReadWriteAttribute + public var channelCount: ConstrainULong + + @ReadWriteAttribute + public var deviceId: ConstrainDOMString + + @ReadWriteAttribute + public var groupId: ConstrainDOMString +} + +public class MediaTrackConstraints: BridgedDictionary { + public convenience init(advanced: [MediaTrackConstraintSet]) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.advanced] = advanced.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _advanced = ReadWriteAttribute(jsObject: object, name: Strings.advanced) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var advanced: [MediaTrackConstraintSet] +} + +public class MediaTrackSettings: BridgedDictionary { + public convenience init(width: Int32, height: Int32, aspectRatio: Double, frameRate: Double, facingMode: String, resizeMode: String, sampleRate: Int32, sampleSize: Int32, echoCancellation: Bool, autoGainControl: Bool, noiseSuppression: Bool, latency: Double, channelCount: Int32, deviceId: String, groupId: String) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.width] = width.jsValue + object[Strings.height] = height.jsValue + object[Strings.aspectRatio] = aspectRatio.jsValue + object[Strings.frameRate] = frameRate.jsValue + object[Strings.facingMode] = facingMode.jsValue + object[Strings.resizeMode] = resizeMode.jsValue + object[Strings.sampleRate] = sampleRate.jsValue + object[Strings.sampleSize] = sampleSize.jsValue + object[Strings.echoCancellation] = echoCancellation.jsValue + object[Strings.autoGainControl] = autoGainControl.jsValue + object[Strings.noiseSuppression] = noiseSuppression.jsValue + object[Strings.latency] = latency.jsValue + object[Strings.channelCount] = channelCount.jsValue + object[Strings.deviceId] = deviceId.jsValue + object[Strings.groupId] = groupId.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _width = ReadWriteAttribute(jsObject: object, name: Strings.width) + _height = ReadWriteAttribute(jsObject: object, name: Strings.height) + _aspectRatio = ReadWriteAttribute(jsObject: object, name: Strings.aspectRatio) + _frameRate = ReadWriteAttribute(jsObject: object, name: Strings.frameRate) + _facingMode = ReadWriteAttribute(jsObject: object, name: Strings.facingMode) + _resizeMode = ReadWriteAttribute(jsObject: object, name: Strings.resizeMode) + _sampleRate = ReadWriteAttribute(jsObject: object, name: Strings.sampleRate) + _sampleSize = ReadWriteAttribute(jsObject: object, name: Strings.sampleSize) + _echoCancellation = ReadWriteAttribute(jsObject: object, name: Strings.echoCancellation) + _autoGainControl = ReadWriteAttribute(jsObject: object, name: Strings.autoGainControl) + _noiseSuppression = ReadWriteAttribute(jsObject: object, name: Strings.noiseSuppression) + _latency = ReadWriteAttribute(jsObject: object, name: Strings.latency) + _channelCount = ReadWriteAttribute(jsObject: object, name: Strings.channelCount) + _deviceId = ReadWriteAttribute(jsObject: object, name: Strings.deviceId) + _groupId = ReadWriteAttribute(jsObject: object, name: Strings.groupId) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var width: Int32 + + @ReadWriteAttribute + public var height: Int32 + + @ReadWriteAttribute + public var aspectRatio: Double + + @ReadWriteAttribute + public var frameRate: Double + + @ReadWriteAttribute + public var facingMode: String + + @ReadWriteAttribute + public var resizeMode: String + + @ReadWriteAttribute + public var sampleRate: Int32 + + @ReadWriteAttribute + public var sampleSize: Int32 + + @ReadWriteAttribute + public var echoCancellation: Bool + + @ReadWriteAttribute + public var autoGainControl: Bool + + @ReadWriteAttribute + public var noiseSuppression: Bool + + @ReadWriteAttribute + public var latency: Double + + @ReadWriteAttribute + public var channelCount: Int32 + + @ReadWriteAttribute + public var deviceId: String + + @ReadWriteAttribute + public var groupId: String +} + +public class MediaTrackSupportedConstraints: BridgedDictionary { + public convenience init(width: Bool, height: Bool, aspectRatio: Bool, frameRate: Bool, facingMode: Bool, resizeMode: Bool, sampleRate: Bool, sampleSize: Bool, echoCancellation: Bool, autoGainControl: Bool, noiseSuppression: Bool, latency: Bool, channelCount: Bool, deviceId: Bool, groupId: Bool) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.width] = width.jsValue + object[Strings.height] = height.jsValue + object[Strings.aspectRatio] = aspectRatio.jsValue + object[Strings.frameRate] = frameRate.jsValue + object[Strings.facingMode] = facingMode.jsValue + object[Strings.resizeMode] = resizeMode.jsValue + object[Strings.sampleRate] = sampleRate.jsValue + object[Strings.sampleSize] = sampleSize.jsValue + object[Strings.echoCancellation] = echoCancellation.jsValue + object[Strings.autoGainControl] = autoGainControl.jsValue + object[Strings.noiseSuppression] = noiseSuppression.jsValue + object[Strings.latency] = latency.jsValue + object[Strings.channelCount] = channelCount.jsValue + object[Strings.deviceId] = deviceId.jsValue + object[Strings.groupId] = groupId.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _width = ReadWriteAttribute(jsObject: object, name: Strings.width) + _height = ReadWriteAttribute(jsObject: object, name: Strings.height) + _aspectRatio = ReadWriteAttribute(jsObject: object, name: Strings.aspectRatio) + _frameRate = ReadWriteAttribute(jsObject: object, name: Strings.frameRate) + _facingMode = ReadWriteAttribute(jsObject: object, name: Strings.facingMode) + _resizeMode = ReadWriteAttribute(jsObject: object, name: Strings.resizeMode) + _sampleRate = ReadWriteAttribute(jsObject: object, name: Strings.sampleRate) + _sampleSize = ReadWriteAttribute(jsObject: object, name: Strings.sampleSize) + _echoCancellation = ReadWriteAttribute(jsObject: object, name: Strings.echoCancellation) + _autoGainControl = ReadWriteAttribute(jsObject: object, name: Strings.autoGainControl) + _noiseSuppression = ReadWriteAttribute(jsObject: object, name: Strings.noiseSuppression) + _latency = ReadWriteAttribute(jsObject: object, name: Strings.latency) + _channelCount = ReadWriteAttribute(jsObject: object, name: Strings.channelCount) + _deviceId = ReadWriteAttribute(jsObject: object, name: Strings.deviceId) + _groupId = ReadWriteAttribute(jsObject: object, name: Strings.groupId) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var width: Bool + + @ReadWriteAttribute + public var height: Bool + + @ReadWriteAttribute + public var aspectRatio: Bool + + @ReadWriteAttribute + public var frameRate: Bool + + @ReadWriteAttribute + public var facingMode: Bool + + @ReadWriteAttribute + public var resizeMode: Bool + + @ReadWriteAttribute + public var sampleRate: Bool + + @ReadWriteAttribute + public var sampleSize: Bool + + @ReadWriteAttribute + public var echoCancellation: Bool + + @ReadWriteAttribute + public var autoGainControl: Bool + + @ReadWriteAttribute + public var noiseSuppression: Bool + + @ReadWriteAttribute + public var latency: Bool + + @ReadWriteAttribute + public var channelCount: Bool + + @ReadWriteAttribute + public var deviceId: Bool + + @ReadWriteAttribute + public var groupId: Bool +} + +public class MessageChannel: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.MessageChannel].function! } + + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { + _port1 = ReadonlyAttribute(jsObject: jsObject, name: Strings.port1) + _port2 = ReadonlyAttribute(jsObject: jsObject, name: Strings.port2) + self.jsObject = jsObject + } + + @inlinable public convenience init() { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [])) + } + + @ReadonlyAttribute + public var port1: MessagePort + + @ReadonlyAttribute + public var port2: MessagePort +} + +public class MessageEvent: Event { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.MessageEvent].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _data = ReadonlyAttribute(jsObject: jsObject, name: Strings.data) + _origin = ReadonlyAttribute(jsObject: jsObject, name: Strings.origin) + _lastEventId = ReadonlyAttribute(jsObject: jsObject, name: Strings.lastEventId) + _source = ReadonlyAttribute(jsObject: jsObject, name: Strings.source) + _ports = ReadonlyAttribute(jsObject: jsObject, name: Strings.ports) + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(type: String, eventInitDict: MessageEventInit? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined])) + } + + @ReadonlyAttribute + public var data: JSValue + + @ReadonlyAttribute + public var origin: String + + @ReadonlyAttribute + public var lastEventId: String + + @ReadonlyAttribute + public var source: MessageEventSource? + + @ReadonlyAttribute + public var ports: [MessagePort] + + @inlinable public func initMessageEvent(type: String, bubbles: Bool? = nil, cancelable: Bool? = nil, data: JSValue? = nil, origin: String? = nil, lastEventId: String? = nil, source: MessageEventSource? = nil, ports: [MessagePort]? = nil) { + let _arg0 = type.jsValue + let _arg1 = bubbles?.jsValue ?? .undefined + let _arg2 = cancelable?.jsValue ?? .undefined + let _arg3 = data?.jsValue ?? .undefined + let _arg4 = origin?.jsValue ?? .undefined + let _arg5 = lastEventId?.jsValue ?? .undefined + let _arg6 = source?.jsValue ?? .undefined + let _arg7 = ports?.jsValue ?? .undefined + let this = jsObject + _ = this[Strings.initMessageEvent].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7]) + } +} + +public class MessageEventInit: BridgedDictionary { + public convenience init(data: JSValue, origin: String, lastEventId: String, source: MessageEventSource?, ports: [MessagePort]) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.data] = data.jsValue + object[Strings.origin] = origin.jsValue + object[Strings.lastEventId] = lastEventId.jsValue + object[Strings.source] = source.jsValue + object[Strings.ports] = ports.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _data = ReadWriteAttribute(jsObject: object, name: Strings.data) + _origin = ReadWriteAttribute(jsObject: object, name: Strings.origin) + _lastEventId = ReadWriteAttribute(jsObject: object, name: Strings.lastEventId) + _source = ReadWriteAttribute(jsObject: object, name: Strings.source) + _ports = ReadWriteAttribute(jsObject: object, name: Strings.ports) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var data: JSValue + + @ReadWriteAttribute + public var origin: String + + @ReadWriteAttribute + public var lastEventId: String + + @ReadWriteAttribute + public var source: MessageEventSource? @ReadWriteAttribute public var ports: [MessagePort] @@ -10306,11 +11130,17 @@ public class Navigator: JSBridgedClass, NavigatorID, NavigatorLanguage, Navigato public required init(unsafelyWrapping jsObject: JSObject) { _serviceWorker = ReadonlyAttribute(jsObject: jsObject, name: Strings.serviceWorker) + _mediaDevices = ReadonlyAttribute(jsObject: jsObject, name: Strings.mediaDevices) self.jsObject = jsObject } @ReadonlyAttribute public var serviceWorker: ServiceWorkerContainer + + @ReadonlyAttribute + public var mediaDevices: MediaDevices + + // XXX: member 'getUserMedia' is ignored } public protocol NavigatorConcurrentHardware: JSBridgedClass {} @@ -10787,6 +11617,22 @@ public class OptionalEffectTiming: BridgedDictionary { public var easing: String } +public class OverconstrainedError: DOMException { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.OverconstrainedError].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _constraint = ReadonlyAttribute(jsObject: jsObject, name: Strings.constraint) + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(constraint: String, message: String? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [constraint.jsValue, message?.jsValue ?? .undefined])) + } + + @ReadonlyAttribute + public var constraint: String +} + public class PageTransitionEvent: Event { @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.PageTransitionEvent].function! } @@ -13231,6 +14077,8 @@ public typealias TransformerStartCallback = (TransformStreamDefaultController) - public typealias TransformerFlushCallback = (TransformStreamDefaultController) -> JSPromise public typealias TransformerTransformCallback = (JSValue, TransformStreamDefaultController) -> JSPromise public typealias QueuingStrategySize = (JSValue) -> Double +public typealias NavigatorUserMediaSuccessCallback = (MediaStream) -> Void +public typealias NavigatorUserMediaErrorCallback = (DOMException) -> Void public class UIEvent: Event { @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.UIEvent].function! } @@ -13286,6 +14134,27 @@ public class UIEventInit: BridgedDictionary { public var which: UInt32 } +public class ULongRange: BridgedDictionary { + public convenience init(max: UInt32, min: UInt32) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.max] = max.jsValue + object[Strings.min] = min.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _max = ReadWriteAttribute(jsObject: object, name: Strings.max) + _min = ReadWriteAttribute(jsObject: object, name: Strings.min) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var max: UInt32 + + @ReadWriteAttribute + public var min: UInt32 +} + public class URL: JSBridgedClass { @inlinable public class var constructor: JSFunction { JSObject.global[Strings.URL].function! } @@ -13608,6 +14477,44 @@ public class ValidityStateFlags: BridgedDictionary { public var customError: Bool } +public enum VideoFacingModeEnum: JSString, JSValueCompatible { + case user = "user" + case environment = "environment" + case left = "left" + case right = "right" + + @inlinable public static func construct(from jsValue: JSValue) -> Self? { + if let string = jsValue.jsString { + return Self(rawValue: string) + } + return nil + } + + @inlinable public init?(string: String) { + self.init(rawValue: JSString(string)) + } + + @inlinable public var jsValue: JSValue { rawValue.jsValue } +} + +public enum VideoResizeModeEnum: JSString, JSValueCompatible { + case none = "none" + case cropAndScale = "crop-and-scale" + + @inlinable public static func construct(from jsValue: JSValue) -> Self? { + if let string = jsValue.jsString { + return Self(rawValue: string) + } + return nil + } + + @inlinable public init?(string: String) { + self.init(rawValue: JSString(string)) + } + + @inlinable public var jsValue: JSValue { rawValue.jsValue } +} + public class VideoTrack: JSBridgedClass { @inlinable public class var constructor: JSFunction { JSObject.global[Strings.VideoTrack].function! } @@ -15430,12 +16337,18 @@ public enum console { @usableFromInline static let ImageBitmap: JSString = "ImageBitmap" @usableFromInline static let ImageBitmapRenderingContext: JSString = "ImageBitmapRenderingContext" @usableFromInline static let ImageData: JSString = "ImageData" + @usableFromInline static let InputDeviceInfo: JSString = "InputDeviceInfo" @usableFromInline static let InputEvent: JSString = "InputEvent" @usableFromInline static let IsSearchProviderInstalled: JSString = "IsSearchProviderInstalled" @usableFromInline static let KeyboardEvent: JSString = "KeyboardEvent" @usableFromInline static let KeyframeEffect: JSString = "KeyframeEffect" @usableFromInline static let Location: JSString = "Location" + @usableFromInline static let MediaDeviceInfo: JSString = "MediaDeviceInfo" + @usableFromInline static let MediaDevices: JSString = "MediaDevices" @usableFromInline static let MediaError: JSString = "MediaError" + @usableFromInline static let MediaStream: JSString = "MediaStream" + @usableFromInline static let MediaStreamTrack: JSString = "MediaStreamTrack" + @usableFromInline static let MediaStreamTrackEvent: JSString = "MediaStreamTrackEvent" @usableFromInline static let MessageChannel: JSString = "MessageChannel" @usableFromInline static let MessageEvent: JSString = "MessageEvent" @usableFromInline static let MessagePort: JSString = "MessagePort" @@ -15454,6 +16367,7 @@ public enum console { @usableFromInline static let Object: JSString = "Object" @usableFromInline static let OffscreenCanvas: JSString = "OffscreenCanvas" @usableFromInline static let OffscreenCanvasRenderingContext2D: JSString = "OffscreenCanvasRenderingContext2D" + @usableFromInline static let OverconstrainedError: JSString = "OverconstrainedError" @usableFromInline static let PageTransitionEvent: JSString = "PageTransitionEvent" @usableFromInline static let Path2D: JSString = "Path2D" @usableFromInline static let Performance: JSString = "Performance" @@ -15538,8 +16452,10 @@ public enum console { @usableFromInline static let addModule: JSString = "addModule" @usableFromInline static let addPath: JSString = "addPath" @usableFromInline static let addTextTrack: JSString = "addTextTrack" + @usableFromInline static let addTrack: JSString = "addTrack" @usableFromInline static let addedNodes: JSString = "addedNodes" @usableFromInline static let adoptNode: JSString = "adoptNode" + @usableFromInline static let advanced: JSString = "advanced" @usableFromInline static let after: JSString = "after" @usableFromInline static let alert: JSString = "alert" @usableFromInline static let align: JSString = "align" @@ -15561,6 +16477,7 @@ public enum console { @usableFromInline static let appendChild: JSString = "appendChild" @usableFromInline static let appendData: JSString = "appendData" @usableFromInline static let applets: JSString = "applets" + @usableFromInline static let applyConstraints: JSString = "applyConstraints" @usableFromInline static let arc: JSString = "arc" @usableFromInline static let arcTo: JSString = "arcTo" @usableFromInline static let archive: JSString = "archive" @@ -15607,6 +16524,7 @@ public enum console { @usableFromInline static let ariaValueText: JSString = "ariaValueText" @usableFromInline static let arrayBuffer: JSString = "arrayBuffer" @usableFromInline static let `as`: JSString = "as" + @usableFromInline static let aspectRatio: JSString = "aspectRatio" @usableFromInline static let assert: JSString = "assert" @usableFromInline static let assign: JSString = "assign" @usableFromInline static let assignedElements: JSString = "assignedElements" @@ -15623,8 +16541,10 @@ public enum console { @usableFromInline static let attributeNamespace: JSString = "attributeNamespace" @usableFromInline static let attributeOldValue: JSString = "attributeOldValue" @usableFromInline static let attributes: JSString = "attributes" + @usableFromInline static let audio: JSString = "audio" @usableFromInline static let audioTracks: JSString = "audioTracks" @usableFromInline static let autoAllocateChunkSize: JSString = "autoAllocateChunkSize" + @usableFromInline static let autoGainControl: JSString = "autoGainControl" @usableFromInline static let autocapitalize: JSString = "autocapitalize" @usableFromInline static let autocomplete: JSString = "autocomplete" @usableFromInline static let autofocus: JSString = "autofocus" @@ -15673,6 +16593,7 @@ public enum console { @usableFromInline static let cells: JSString = "cells" @usableFromInline static let ch: JSString = "ch" @usableFromInline static let chOff: JSString = "chOff" + @usableFromInline static let channelCount: JSString = "channelCount" @usableFromInline static let charCode: JSString = "charCode" @usableFromInline static let characterData: JSString = "characterData" @usableFromInline static let characterDataOldValue: JSString = "characterDataOldValue" @@ -15733,6 +16654,7 @@ public enum console { @usableFromInline static let computedOffset: JSString = "computedOffset" @usableFromInline static let confirm: JSString = "confirm" @usableFromInline static let console: JSString = "console" + @usableFromInline static let constraint: JSString = "constraint" @usableFromInline static let contains: JSString = "contains" @usableFromInline static let content: JSString = "content" @usableFromInline static let contentDocument: JSString = "contentDocument" @@ -15826,6 +16748,7 @@ public enum console { @usableFromInline static let desynchronized: JSString = "desynchronized" @usableFromInline static let detach: JSString = "detach" @usableFromInline static let detail: JSString = "detail" + @usableFromInline static let deviceId: JSString = "deviceId" @usableFromInline static let dir: JSString = "dir" @usableFromInline static let dirName: JSString = "dirName" @usableFromInline static let direction: JSString = "direction" @@ -15848,6 +16771,7 @@ public enum console { @usableFromInline static let duration: JSString = "duration" @usableFromInline static let e: JSString = "e" @usableFromInline static let easing: JSString = "easing" + @usableFromInline static let echoCancellation: JSString = "echoCancellation" @usableFromInline static let effect: JSString = "effect" @usableFromInline static let effectAllowed: JSString = "effectAllowed" @usableFromInline static let elements: JSString = "elements" @@ -15869,16 +16793,19 @@ public enum console { @usableFromInline static let endings: JSString = "endings" @usableFromInline static let enqueue: JSString = "enqueue" @usableFromInline static let enterKeyHint: JSString = "enterKeyHint" + @usableFromInline static let enumerateDevices: JSString = "enumerateDevices" @usableFromInline static let error: JSString = "error" @usableFromInline static let evaluate: JSString = "evaluate" @usableFromInline static let event: JSString = "event" @usableFromInline static let eventPhase: JSString = "eventPhase" + @usableFromInline static let exact: JSString = "exact" @usableFromInline static let execCommand: JSString = "execCommand" @usableFromInline static let extends: JSString = "extends" @usableFromInline static let external: JSString = "external" @usableFromInline static let extractContents: JSString = "extractContents" @usableFromInline static let f: JSString = "f" @usableFromInline static let face: JSString = "face" + @usableFromInline static let facingMode: JSString = "facingMode" @usableFromInline static let fastSeek: JSString = "fastSeek" @usableFromInline static let fetch: JSString = "fetch" @usableFromInline static let fgColor: JSString = "fgColor" @@ -15916,6 +16843,7 @@ public enum console { @usableFromInline static let frame: JSString = "frame" @usableFromInline static let frameBorder: JSString = "frameBorder" @usableFromInline static let frameElement: JSString = "frameElement" + @usableFromInline static let frameRate: JSString = "frameRate" @usableFromInline static let frames: JSString = "frames" @usableFromInline static let fromFloat32Array: JSString = "fromFloat32Array" @usableFromInline static let fromFloat64Array: JSString = "fromFloat64Array" @@ -15933,8 +16861,11 @@ public enum console { @usableFromInline static let getAttributeNames: JSString = "getAttributeNames" @usableFromInline static let getAttributeNode: JSString = "getAttributeNode" @usableFromInline static let getAttributeNodeNS: JSString = "getAttributeNodeNS" + @usableFromInline static let getAudioTracks: JSString = "getAudioTracks" @usableFromInline static let getBounds: JSString = "getBounds" + @usableFromInline static let getCapabilities: JSString = "getCapabilities" @usableFromInline static let getComputedTiming: JSString = "getComputedTiming" + @usableFromInline static let getConstraints: JSString = "getConstraints" @usableFromInline static let getContext: JSString = "getContext" @usableFromInline static let getContextAttributes: JSString = "getContextAttributes" @usableFromInline static let getCueById: JSString = "getCueById" @@ -15956,11 +16887,16 @@ public enum console { @usableFromInline static let getResponseHeader: JSString = "getResponseHeader" @usableFromInline static let getRootNode: JSString = "getRootNode" @usableFromInline static let getSVGDocument: JSString = "getSVGDocument" + @usableFromInline static let getSettings: JSString = "getSettings" @usableFromInline static let getStartDate: JSString = "getStartDate" @usableFromInline static let getState: JSString = "getState" + @usableFromInline static let getSupportedConstraints: JSString = "getSupportedConstraints" @usableFromInline static let getTiming: JSString = "getTiming" @usableFromInline static let getTrackById: JSString = "getTrackById" + @usableFromInline static let getTracks: JSString = "getTracks" @usableFromInline static let getTransform: JSString = "getTransform" + @usableFromInline static let getUserMedia: JSString = "getUserMedia" + @usableFromInline static let getVideoTracks: JSString = "getVideoTracks" @usableFromInline static let getWriter: JSString = "getWriter" @usableFromInline static let globalAlpha: JSString = "globalAlpha" @usableFromInline static let globalCompositeOperation: JSString = "globalCompositeOperation" @@ -15968,6 +16904,7 @@ public enum console { @usableFromInline static let group: JSString = "group" @usableFromInline static let groupCollapsed: JSString = "groupCollapsed" @usableFromInline static let groupEnd: JSString = "groupEnd" + @usableFromInline static let groupId: JSString = "groupId" @usableFromInline static let handled: JSString = "handled" @usableFromInline static let hangingBaseline: JSString = "hangingBaseline" @usableFromInline static let hardwareConcurrency: JSString = "hardwareConcurrency" @@ -15995,6 +16932,7 @@ public enum console { @usableFromInline static let htmlFor: JSString = "htmlFor" @usableFromInline static let httpEquiv: JSString = "httpEquiv" @usableFromInline static let id: JSString = "id" + @usableFromInline static let ideal: JSString = "ideal" @usableFromInline static let ideographicBaseline: JSString = "ideographicBaseline" @usableFromInline static let ignoreMethod: JSString = "ignoreMethod" @usableFromInline static let ignoreSearch: JSString = "ignoreSearch" @@ -16079,6 +17017,7 @@ public enum console { @usableFromInline static let lastElementChild: JSString = "lastElementChild" @usableFromInline static let lastEventId: JSString = "lastEventId" @usableFromInline static let lastModified: JSString = "lastModified" + @usableFromInline static let latency: JSString = "latency" @usableFromInline static let left: JSString = "left" @usableFromInline static let length: JSString = "length" @usableFromInline static let lengthComputable: JSString = "lengthComputable" @@ -16134,6 +17073,7 @@ public enum console { @usableFromInline static let maxLength: JSString = "maxLength" @usableFromInline static let measureText: JSString = "measureText" @usableFromInline static let media: JSString = "media" + @usableFromInline static let mediaDevices: JSString = "mediaDevices" @usableFromInline static let menubar: JSString = "menubar" @usableFromInline static let message: JSString = "message" @usableFromInline static let metaKey: JSString = "metaKey" @@ -16180,6 +17120,7 @@ public enum console { @usableFromInline static let nodeName: JSString = "nodeName" @usableFromInline static let nodeType: JSString = "nodeType" @usableFromInline static let nodeValue: JSString = "nodeValue" + @usableFromInline static let noiseSuppression: JSString = "noiseSuppression" @usableFromInline static let nonce: JSString = "nonce" @usableFromInline static let normalize: JSString = "normalize" @usableFromInline static let now: JSString = "now" @@ -16212,6 +17153,7 @@ public enum console { @usableFromInline static let oncuechange: JSString = "oncuechange" @usableFromInline static let oncut: JSString = "oncut" @usableFromInline static let ondblclick: JSString = "ondblclick" + @usableFromInline static let ondevicechange: JSString = "ondevicechange" @usableFromInline static let ondrag: JSString = "ondrag" @usableFromInline static let ondragend: JSString = "ondragend" @usableFromInline static let ondragenter: JSString = "ondragenter" @@ -16249,6 +17191,7 @@ public enum console { @usableFromInline static let onmouseout: JSString = "onmouseout" @usableFromInline static let onmouseover: JSString = "onmouseover" @usableFromInline static let onmouseup: JSString = "onmouseup" + @usableFromInline static let onmute: JSString = "onmute" @usableFromInline static let onoffline: JSString = "onoffline" @usableFromInline static let ononline: JSString = "ononline" @usableFromInline static let onopen: JSString = "onopen" @@ -16283,6 +17226,7 @@ public enum console { @usableFromInline static let ontoggle: JSString = "ontoggle" @usableFromInline static let onunhandledrejection: JSString = "onunhandledrejection" @usableFromInline static let onunload: JSString = "onunload" + @usableFromInline static let onunmute: JSString = "onunmute" @usableFromInline static let onupdatefound: JSString = "onupdatefound" @usableFromInline static let onvisibilitychange: JSString = "onvisibilitychange" @usableFromInline static let onvolumechange: JSString = "onvolumechange" @@ -16308,6 +17252,7 @@ public enum console { @usableFromInline static let p2: JSString = "p2" @usableFromInline static let p3: JSString = "p3" @usableFromInline static let p4: JSString = "p4" + @usableFromInline static let panTiltZoom: JSString = "panTiltZoom" @usableFromInline static let parent: JSString = "parent" @usableFromInline static let parentElement: JSString = "parentElement" @usableFromInline static let parentNode: JSString = "parentNode" @@ -16422,6 +17367,7 @@ public enum console { @usableFromInline static let removeNamedItem: JSString = "removeNamedItem" @usableFromInline static let removeNamedItemNS: JSString = "removeNamedItemNS" @usableFromInline static let removeParameter: JSString = "removeParameter" + @usableFromInline static let removeTrack: JSString = "removeTrack" @usableFromInline static let removedNodes: JSString = "removedNodes" @usableFromInline static let `repeat`: JSString = "repeat" @usableFromInline static let replace: JSString = "replace" @@ -16439,6 +17385,7 @@ public enum console { @usableFromInline static let reset: JSString = "reset" @usableFromInline static let resetTransform: JSString = "resetTransform" @usableFromInline static let resizeHeight: JSString = "resizeHeight" + @usableFromInline static let resizeMode: JSString = "resizeMode" @usableFromInline static let resizeQuality: JSString = "resizeQuality" @usableFromInline static let resizeWidth: JSString = "resizeWidth" @usableFromInline static let respond: JSString = "respond" @@ -16471,6 +17418,8 @@ public enum console { @usableFromInline static let rowSpan: JSString = "rowSpan" @usableFromInline static let rows: JSString = "rows" @usableFromInline static let rules: JSString = "rules" + @usableFromInline static let sampleRate: JSString = "sampleRate" + @usableFromInline static let sampleSize: JSString = "sampleSize" @usableFromInline static let sandbox: JSString = "sandbox" @usableFromInline static let save: JSString = "save" @usableFromInline static let scale: JSString = "scale" @@ -16684,6 +17633,7 @@ public enum console { @usableFromInline static let vendor: JSString = "vendor" @usableFromInline static let vendorSub: JSString = "vendorSub" @usableFromInline static let version: JSString = "version" + @usableFromInline static let video: JSString = "video" @usableFromInline static let videoHeight: JSString = "videoHeight" @usableFromInline static let videoTracks: JSString = "videoTracks" @usableFromInline static let videoWidth: JSString = "videoWidth" @@ -16871,6 +17821,48 @@ public enum BlobPart: JSValueCompatible, Any_BlobPart { } } +public protocol Any_Bool_or_MediaTrackConstraints: ConvertibleToJSValue {} +extension Bool: Any_Bool_or_MediaTrackConstraints {} +extension MediaTrackConstraints: Any_Bool_or_MediaTrackConstraints {} + +public enum Bool_or_MediaTrackConstraints: JSValueCompatible, Any_Bool_or_MediaTrackConstraints { + case bool(Bool) + case mediaTrackConstraints(MediaTrackConstraints) + + var bool: Bool? { + switch self { + case let .bool(bool): return bool + default: return nil + } + } + + var mediaTrackConstraints: MediaTrackConstraints? { + switch self { + case let .mediaTrackConstraints(mediaTrackConstraints): return mediaTrackConstraints + default: return nil + } + } + + public static func construct(from value: JSValue) -> Self? { + if let bool: Bool = value.fromJSValue() { + return .bool(bool) + } + if let mediaTrackConstraints: MediaTrackConstraints = value.fromJSValue() { + return .mediaTrackConstraints(mediaTrackConstraints) + } + return nil + } + + public var jsValue: JSValue { + switch self { + case let .bool(bool): + return bool.jsValue + case let .mediaTrackConstraints(mediaTrackConstraints): + return mediaTrackConstraints.jsValue + } + } +} + public protocol Any_BufferSource: ConvertibleToJSValue {} extension ArrayBuffer: Any_BufferSource {} extension ArrayBufferView: Any_BufferSource {} @@ -17095,6 +18087,188 @@ public enum CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto: JSValue } } +public protocol Any_ConstrainBoolean: ConvertibleToJSValue {} +extension Bool: Any_ConstrainBoolean {} +extension ConstrainBooleanParameters: Any_ConstrainBoolean {} + +public enum ConstrainBoolean: JSValueCompatible, Any_ConstrainBoolean { + case bool(Bool) + case constrainBooleanParameters(ConstrainBooleanParameters) + + var bool: Bool? { + switch self { + case let .bool(bool): return bool + default: return nil + } + } + + var constrainBooleanParameters: ConstrainBooleanParameters? { + switch self { + case let .constrainBooleanParameters(constrainBooleanParameters): return constrainBooleanParameters + default: return nil + } + } + + public static func construct(from value: JSValue) -> Self? { + if let bool: Bool = value.fromJSValue() { + return .bool(bool) + } + if let constrainBooleanParameters: ConstrainBooleanParameters = value.fromJSValue() { + return .constrainBooleanParameters(constrainBooleanParameters) + } + return nil + } + + public var jsValue: JSValue { + switch self { + case let .bool(bool): + return bool.jsValue + case let .constrainBooleanParameters(constrainBooleanParameters): + return constrainBooleanParameters.jsValue + } + } +} + +public protocol Any_ConstrainDOMString: ConvertibleToJSValue {} +extension ConstrainDOMStringParameters: Any_ConstrainDOMString {} +extension String: Any_ConstrainDOMString {} +extension Array: Any_ConstrainDOMString where Element == String {} + +public enum ConstrainDOMString: JSValueCompatible, Any_ConstrainDOMString { + case constrainDOMStringParameters(ConstrainDOMStringParameters) + case string(String) + case seq_of_String([String]) + + var constrainDOMStringParameters: ConstrainDOMStringParameters? { + switch self { + case let .constrainDOMStringParameters(constrainDOMStringParameters): return constrainDOMStringParameters + default: return nil + } + } + + var string: String? { + switch self { + case let .string(string): return string + default: return nil + } + } + + var seq_of_String: [String]? { + switch self { + case let .seq_of_String(seq_of_String): return seq_of_String + default: return nil + } + } + + public static func construct(from value: JSValue) -> Self? { + if let constrainDOMStringParameters: ConstrainDOMStringParameters = value.fromJSValue() { + return .constrainDOMStringParameters(constrainDOMStringParameters) + } + if let string: String = value.fromJSValue() { + return .string(string) + } + if let seq_of_String: [String] = value.fromJSValue() { + return .seq_of_String(seq_of_String) + } + return nil + } + + public var jsValue: JSValue { + switch self { + case let .constrainDOMStringParameters(constrainDOMStringParameters): + return constrainDOMStringParameters.jsValue + case let .string(string): + return string.jsValue + case let .seq_of_String(seq_of_String): + return seq_of_String.jsValue + } + } +} + +public protocol Any_ConstrainDouble: ConvertibleToJSValue {} +extension ConstrainDoubleRange: Any_ConstrainDouble {} +extension Double: Any_ConstrainDouble {} + +public enum ConstrainDouble: JSValueCompatible, Any_ConstrainDouble { + case constrainDoubleRange(ConstrainDoubleRange) + case double(Double) + + var constrainDoubleRange: ConstrainDoubleRange? { + switch self { + case let .constrainDoubleRange(constrainDoubleRange): return constrainDoubleRange + default: return nil + } + } + + var double: Double? { + switch self { + case let .double(double): return double + default: return nil + } + } + + public static func construct(from value: JSValue) -> Self? { + if let constrainDoubleRange: ConstrainDoubleRange = value.fromJSValue() { + return .constrainDoubleRange(constrainDoubleRange) + } + if let double: Double = value.fromJSValue() { + return .double(double) + } + return nil + } + + public var jsValue: JSValue { + switch self { + case let .constrainDoubleRange(constrainDoubleRange): + return constrainDoubleRange.jsValue + case let .double(double): + return double.jsValue + } + } +} + +public protocol Any_ConstrainULong: ConvertibleToJSValue {} +extension ConstrainULongRange: Any_ConstrainULong {} +extension UInt32: Any_ConstrainULong {} + +public enum ConstrainULong: JSValueCompatible, Any_ConstrainULong { + case constrainULongRange(ConstrainULongRange) + case uInt32(UInt32) + + var constrainULongRange: ConstrainULongRange? { + switch self { + case let .constrainULongRange(constrainULongRange): return constrainULongRange + default: return nil + } + } + + var uInt32: UInt32? { + switch self { + case let .uInt32(uInt32): return uInt32 + default: return nil + } + } + + public static func construct(from value: JSValue) -> Self? { + if let constrainULongRange: ConstrainULongRange = value.fromJSValue() { + return .constrainULongRange(constrainULongRange) + } + if let uInt32: UInt32 = value.fromJSValue() { + return .uInt32(uInt32) + } + return nil + } + + public var jsValue: JSValue { + switch self { + case let .constrainULongRange(constrainULongRange): + return constrainULongRange.jsValue + case let .uInt32(uInt32): + return uInt32.jsValue + } + } +} + public protocol Any_DOMPointInit_or_Double: ConvertibleToJSValue {} extension DOMPointInit: Any_DOMPointInit_or_Double {} extension Double: Any_DOMPointInit_or_Double {} diff --git a/parse-idl/parse-all.js b/parse-idl/parse-all.js index a992f772..08b8be31 100644 --- a/parse-idl/parse-all.js +++ b/parse-idl/parse-all.js @@ -7,6 +7,7 @@ const parsedFiles = await parseAll(); console.log( JSON.stringify( [ + "console", "dom", "fetch", "FileAPI", @@ -22,7 +23,7 @@ console.log( "service-workers", "url", "streams", - "console", + "mediacapture-streams", ].map((key) => parsedFiles[key]), null, 2 From 916eee4afbb46b0e0b793bc73036a68b146560e2 Mon Sep 17 00:00:00 2001 From: Max Desiatov Date: Tue, 3 May 2022 13:02:14 +0100 Subject: [PATCH 2/3] Add `webaudio` IDL spec and generated code (#26) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Web Audio is a fun API that allows creating things such as synthesizers and audio effects! 🔊 --- Sources/DOMKit/Generated.swift | 3233 +++++++++++++++++++++++++++----- parse-idl/parse-all.js | 1 + 2 files changed, 2791 insertions(+), 443 deletions(-) diff --git a/Sources/DOMKit/Generated.swift b/Sources/DOMKit/Generated.swift index 907d355b..7053e148 100644 --- a/Sources/DOMKit/Generated.swift +++ b/Sources/DOMKit/Generated.swift @@ -333,6 +333,89 @@ public class AddEventListenerOptions: BridgedDictionary { public var signal: AbortSignal } +public class AnalyserNode: AudioNode { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.AnalyserNode].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _fftSize = ReadWriteAttribute(jsObject: jsObject, name: Strings.fftSize) + _frequencyBinCount = ReadonlyAttribute(jsObject: jsObject, name: Strings.frequencyBinCount) + _minDecibels = ReadWriteAttribute(jsObject: jsObject, name: Strings.minDecibels) + _maxDecibels = ReadWriteAttribute(jsObject: jsObject, name: Strings.maxDecibels) + _smoothingTimeConstant = ReadWriteAttribute(jsObject: jsObject, name: Strings.smoothingTimeConstant) + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(context: BaseAudioContext, options: AnalyserOptions? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [context.jsValue, options?.jsValue ?? .undefined])) + } + + @inlinable public func getFloatFrequencyData(array: Float32Array) { + let this = jsObject + _ = this[Strings.getFloatFrequencyData].function!(this: this, arguments: [array.jsValue]) + } + + @inlinable public func getByteFrequencyData(array: Uint8Array) { + let this = jsObject + _ = this[Strings.getByteFrequencyData].function!(this: this, arguments: [array.jsValue]) + } + + @inlinable public func getFloatTimeDomainData(array: Float32Array) { + let this = jsObject + _ = this[Strings.getFloatTimeDomainData].function!(this: this, arguments: [array.jsValue]) + } + + @inlinable public func getByteTimeDomainData(array: Uint8Array) { + let this = jsObject + _ = this[Strings.getByteTimeDomainData].function!(this: this, arguments: [array.jsValue]) + } + + @ReadWriteAttribute + public var fftSize: UInt32 + + @ReadonlyAttribute + public var frequencyBinCount: UInt32 + + @ReadWriteAttribute + public var minDecibels: Double + + @ReadWriteAttribute + public var maxDecibels: Double + + @ReadWriteAttribute + public var smoothingTimeConstant: Double +} + +public class AnalyserOptions: BridgedDictionary { + public convenience init(fftSize: UInt32, maxDecibels: Double, minDecibels: Double, smoothingTimeConstant: Double) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.fftSize] = fftSize.jsValue + object[Strings.maxDecibels] = maxDecibels.jsValue + object[Strings.minDecibels] = minDecibels.jsValue + object[Strings.smoothingTimeConstant] = smoothingTimeConstant.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _fftSize = ReadWriteAttribute(jsObject: object, name: Strings.fftSize) + _maxDecibels = ReadWriteAttribute(jsObject: object, name: Strings.maxDecibels) + _minDecibels = ReadWriteAttribute(jsObject: object, name: Strings.minDecibels) + _smoothingTimeConstant = ReadWriteAttribute(jsObject: object, name: Strings.smoothingTimeConstant) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var fftSize: UInt32 + + @ReadWriteAttribute + public var maxDecibels: Double + + @ReadWriteAttribute + public var minDecibels: Double + + @ReadWriteAttribute + public var smoothingTimeConstant: Double +} + public protocol Animatable: JSBridgedClass {} public extension Animatable { @inlinable func animate(keyframes: JSObject?, options: Double_or_KeyframeAnimationOptions? = nil) -> Animation { @@ -590,608 +673,1594 @@ public class Attr: Node { public var specified: Bool } -public class AudioTrack: JSBridgedClass { - @inlinable public class var constructor: JSFunction { JSObject.global[Strings.AudioTrack].function! } +public class AudioBuffer: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.AudioBuffer].function! } public let jsObject: JSObject public required init(unsafelyWrapping jsObject: JSObject) { - _id = ReadonlyAttribute(jsObject: jsObject, name: Strings.id) - _kind = ReadonlyAttribute(jsObject: jsObject, name: Strings.kind) - _label = ReadonlyAttribute(jsObject: jsObject, name: Strings.label) - _language = ReadonlyAttribute(jsObject: jsObject, name: Strings.language) - _enabled = ReadWriteAttribute(jsObject: jsObject, name: Strings.enabled) + _sampleRate = ReadonlyAttribute(jsObject: jsObject, name: Strings.sampleRate) + _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) + _duration = ReadonlyAttribute(jsObject: jsObject, name: Strings.duration) + _numberOfChannels = ReadonlyAttribute(jsObject: jsObject, name: Strings.numberOfChannels) self.jsObject = jsObject } - @ReadonlyAttribute - public var id: String + @inlinable public convenience init(options: AudioBufferOptions) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [options.jsValue])) + } @ReadonlyAttribute - public var kind: String + public var sampleRate: Float @ReadonlyAttribute - public var label: String + public var length: UInt32 @ReadonlyAttribute - public var language: String - - @ReadWriteAttribute - public var enabled: Bool -} - -public class AudioTrackList: EventTarget { - @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.AudioTrackList].function! } - - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - _onchange = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onchange) - _onaddtrack = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onaddtrack) - _onremovetrack = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onremovetrack) - super.init(unsafelyWrapping: jsObject) - } + public var duration: Double @ReadonlyAttribute - public var length: UInt32 + public var numberOfChannels: UInt32 - @inlinable public subscript(key: Int) -> AudioTrack { - jsObject[key].fromJSValue()! + @inlinable public func getChannelData(channel: UInt32) -> Float32Array { + let this = jsObject + return this[Strings.getChannelData].function!(this: this, arguments: [channel.jsValue]).fromJSValue()! } - @inlinable public func getTrackById(id: String) -> AudioTrack? { + @inlinable public func copyFromChannel(destination: Float32Array, channelNumber: UInt32, bufferOffset: UInt32? = nil) { let this = jsObject - return this[Strings.getTrackById].function!(this: this, arguments: [id.jsValue]).fromJSValue()! + _ = this[Strings.copyFromChannel].function!(this: this, arguments: [destination.jsValue, channelNumber.jsValue, bufferOffset?.jsValue ?? .undefined]) } - @ClosureAttribute1Optional - public var onchange: EventHandler - - @ClosureAttribute1Optional - public var onaddtrack: EventHandler - - @ClosureAttribute1Optional - public var onremovetrack: EventHandler -} - -public class BarProp: JSBridgedClass { - @inlinable public class var constructor: JSFunction { JSObject.global[Strings.BarProp].function! } - - public let jsObject: JSObject - - public required init(unsafelyWrapping jsObject: JSObject) { - _visible = ReadonlyAttribute(jsObject: jsObject, name: Strings.visible) - self.jsObject = jsObject + @inlinable public func copyToChannel(source: Float32Array, channelNumber: UInt32, bufferOffset: UInt32? = nil) { + let this = jsObject + _ = this[Strings.copyToChannel].function!(this: this, arguments: [source.jsValue, channelNumber.jsValue, bufferOffset?.jsValue ?? .undefined]) } - - @ReadonlyAttribute - public var visible: Bool } -public class BaseComputedKeyframe: BridgedDictionary { - public convenience init(offset: Double?, computedOffset: Double, easing: String, composite: CompositeOperationOrAuto) { +public class AudioBufferOptions: BridgedDictionary { + public convenience init(numberOfChannels: UInt32, length: UInt32, sampleRate: Float) { let object = JSObject.global[Strings.Object].function!.new() - object[Strings.offset] = offset.jsValue - object[Strings.computedOffset] = computedOffset.jsValue - object[Strings.easing] = easing.jsValue - object[Strings.composite] = composite.jsValue + object[Strings.numberOfChannels] = numberOfChannels.jsValue + object[Strings.length] = length.jsValue + object[Strings.sampleRate] = sampleRate.jsValue self.init(unsafelyWrapping: object) } public required init(unsafelyWrapping object: JSObject) { - _offset = ReadWriteAttribute(jsObject: object, name: Strings.offset) - _computedOffset = ReadWriteAttribute(jsObject: object, name: Strings.computedOffset) - _easing = ReadWriteAttribute(jsObject: object, name: Strings.easing) - _composite = ReadWriteAttribute(jsObject: object, name: Strings.composite) + _numberOfChannels = ReadWriteAttribute(jsObject: object, name: Strings.numberOfChannels) + _length = ReadWriteAttribute(jsObject: object, name: Strings.length) + _sampleRate = ReadWriteAttribute(jsObject: object, name: Strings.sampleRate) super.init(unsafelyWrapping: object) } @ReadWriteAttribute - public var offset: Double? - - @ReadWriteAttribute - public var computedOffset: Double + public var numberOfChannels: UInt32 @ReadWriteAttribute - public var easing: String + public var length: UInt32 @ReadWriteAttribute - public var composite: CompositeOperationOrAuto + public var sampleRate: Float } -public class BaseKeyframe: BridgedDictionary { - public convenience init(offset: Double?, easing: String, composite: CompositeOperationOrAuto) { - let object = JSObject.global[Strings.Object].function!.new() - object[Strings.offset] = offset.jsValue - object[Strings.easing] = easing.jsValue - object[Strings.composite] = composite.jsValue - self.init(unsafelyWrapping: object) +public class AudioBufferSourceNode: AudioScheduledSourceNode { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.AudioBufferSourceNode].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _buffer = ReadWriteAttribute(jsObject: jsObject, name: Strings.buffer) + _playbackRate = ReadonlyAttribute(jsObject: jsObject, name: Strings.playbackRate) + _detune = ReadonlyAttribute(jsObject: jsObject, name: Strings.detune) + _loop = ReadWriteAttribute(jsObject: jsObject, name: Strings.loop) + _loopStart = ReadWriteAttribute(jsObject: jsObject, name: Strings.loopStart) + _loopEnd = ReadWriteAttribute(jsObject: jsObject, name: Strings.loopEnd) + super.init(unsafelyWrapping: jsObject) } - public required init(unsafelyWrapping object: JSObject) { - _offset = ReadWriteAttribute(jsObject: object, name: Strings.offset) - _easing = ReadWriteAttribute(jsObject: object, name: Strings.easing) - _composite = ReadWriteAttribute(jsObject: object, name: Strings.composite) - super.init(unsafelyWrapping: object) + @inlinable public convenience init(context: BaseAudioContext, options: AudioBufferSourceOptions? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [context.jsValue, options?.jsValue ?? .undefined])) } @ReadWriteAttribute - public var offset: Double? + public var buffer: AudioBuffer? + + @ReadonlyAttribute + public var playbackRate: AudioParam + + @ReadonlyAttribute + public var detune: AudioParam @ReadWriteAttribute - public var easing: String + public var loop: Bool @ReadWriteAttribute - public var composite: CompositeOperationOrAuto + public var loopStart: Double + + @ReadWriteAttribute + public var loopEnd: Double + + // XXX: member 'start' is ignored } -public class BasePropertyIndexedKeyframe: BridgedDictionary { - public convenience init(offset: nullable_Double_or_seq_of_nullable_Double, easing: String_or_seq_of_String, composite: CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto) { +public class AudioBufferSourceOptions: BridgedDictionary { + public convenience init(buffer: AudioBuffer?, detune: Float, loop: Bool, loopEnd: Double, loopStart: Double, playbackRate: Float) { let object = JSObject.global[Strings.Object].function!.new() - object[Strings.offset] = offset.jsValue - object[Strings.easing] = easing.jsValue - object[Strings.composite] = composite.jsValue + object[Strings.buffer] = buffer.jsValue + object[Strings.detune] = detune.jsValue + object[Strings.loop] = loop.jsValue + object[Strings.loopEnd] = loopEnd.jsValue + object[Strings.loopStart] = loopStart.jsValue + object[Strings.playbackRate] = playbackRate.jsValue self.init(unsafelyWrapping: object) } public required init(unsafelyWrapping object: JSObject) { - _offset = ReadWriteAttribute(jsObject: object, name: Strings.offset) - _easing = ReadWriteAttribute(jsObject: object, name: Strings.easing) - _composite = ReadWriteAttribute(jsObject: object, name: Strings.composite) + _buffer = ReadWriteAttribute(jsObject: object, name: Strings.buffer) + _detune = ReadWriteAttribute(jsObject: object, name: Strings.detune) + _loop = ReadWriteAttribute(jsObject: object, name: Strings.loop) + _loopEnd = ReadWriteAttribute(jsObject: object, name: Strings.loopEnd) + _loopStart = ReadWriteAttribute(jsObject: object, name: Strings.loopStart) + _playbackRate = ReadWriteAttribute(jsObject: object, name: Strings.playbackRate) super.init(unsafelyWrapping: object) } @ReadWriteAttribute - public var offset: nullable_Double_or_seq_of_nullable_Double + public var buffer: AudioBuffer? @ReadWriteAttribute - public var easing: String_or_seq_of_String + public var detune: Float @ReadWriteAttribute - public var composite: CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto -} + public var loop: Bool -public class BeforeUnloadEvent: Event { - @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.BeforeUnloadEvent].function! } + @ReadWriteAttribute + public var loopEnd: Double - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } + @ReadWriteAttribute + public var loopStart: Double - // XXX: member 'returnValue' is ignored + @ReadWriteAttribute + public var playbackRate: Float } -public class Blob: JSBridgedClass { - @inlinable public class var constructor: JSFunction { JSObject.global[Strings.Blob].function! } - - public let jsObject: JSObject +public class AudioContext: BaseAudioContext { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.AudioContext].function! } public required init(unsafelyWrapping jsObject: JSObject) { - _size = ReadonlyAttribute(jsObject: jsObject, name: Strings.size) - _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type) - self.jsObject = jsObject + _baseLatency = ReadonlyAttribute(jsObject: jsObject, name: Strings.baseLatency) + _outputLatency = ReadonlyAttribute(jsObject: jsObject, name: Strings.outputLatency) + super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init(blobParts: [BlobPart]? = nil, options: BlobPropertyBag? = nil) { - self.init(unsafelyWrapping: Self.constructor.new(arguments: [blobParts?.jsValue ?? .undefined, options?.jsValue ?? .undefined])) + @inlinable public convenience init(contextOptions: AudioContextOptions? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [contextOptions?.jsValue ?? .undefined])) } @ReadonlyAttribute - public var size: UInt64 + public var baseLatency: Double @ReadonlyAttribute - public var type: String + public var outputLatency: Double - @inlinable public func slice(start: Int64? = nil, end: Int64? = nil, contentType: String? = nil) -> Self { + @inlinable public func getOutputTimestamp() -> AudioTimestamp { let this = jsObject - return this[Strings.slice].function!(this: this, arguments: [start?.jsValue ?? .undefined, end?.jsValue ?? .undefined, contentType?.jsValue ?? .undefined]).fromJSValue()! + return this[Strings.getOutputTimestamp].function!(this: this, arguments: []).fromJSValue()! } - // XXX: member 'stream' is ignored - - @inlinable public func text() -> JSPromise { + @inlinable public func resume() -> JSPromise { let this = jsObject - return this[Strings.text].function!(this: this, arguments: []).fromJSValue()! + return this[Strings.resume].function!(this: this, arguments: []).fromJSValue()! } @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func text() async throws -> String { + @inlinable public func resume() async throws { let this = jsObject - let _promise: JSPromise = this[Strings.text].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! + let _promise: JSPromise = this[Strings.resume].function!(this: this, arguments: []).fromJSValue()! + _ = try await _promise.value } - @inlinable public func arrayBuffer() -> JSPromise { + @inlinable public func suspend() -> JSPromise { let this = jsObject - return this[Strings.arrayBuffer].function!(this: this, arguments: []).fromJSValue()! + return this[Strings.suspend].function!(this: this, arguments: []).fromJSValue()! } @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func arrayBuffer() async throws -> ArrayBuffer { + @inlinable public func suspend() async throws { let this = jsObject - let _promise: JSPromise = this[Strings.arrayBuffer].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! - } -} - -public class BlobPropertyBag: BridgedDictionary { - public convenience init(type: String, endings: EndingType) { - let object = JSObject.global[Strings.Object].function!.new() - object[Strings.type] = type.jsValue - object[Strings.endings] = endings.jsValue - self.init(unsafelyWrapping: object) - } - - public required init(unsafelyWrapping object: JSObject) { - _type = ReadWriteAttribute(jsObject: object, name: Strings.type) - _endings = ReadWriteAttribute(jsObject: object, name: Strings.endings) - super.init(unsafelyWrapping: object) + let _promise: JSPromise = this[Strings.suspend].function!(this: this, arguments: []).fromJSValue()! + _ = try await _promise.value } - @ReadWriteAttribute - public var type: String - - @ReadWriteAttribute - public var endings: EndingType -} - -public protocol Body: JSBridgedClass {} -public extension Body { - // XXX: attribute 'body' is ignored - - @inlinable var bodyUsed: Bool { ReadonlyAttribute[Strings.bodyUsed, in: jsObject] } - - @inlinable func arrayBuffer() -> JSPromise { + @inlinable public func close() -> JSPromise { let this = jsObject - return this[Strings.arrayBuffer].function!(this: this, arguments: []).fromJSValue()! + return this[Strings.close].function!(this: this, arguments: []).fromJSValue()! } @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable func arrayBuffer() async throws -> ArrayBuffer { + @inlinable public func close() async throws { let this = jsObject - let _promise: JSPromise = this[Strings.arrayBuffer].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! + let _promise: JSPromise = this[Strings.close].function!(this: this, arguments: []).fromJSValue()! + _ = try await _promise.value } - @inlinable func blob() -> JSPromise { + @inlinable public func createMediaElementSource(mediaElement: HTMLMediaElement) -> MediaElementAudioSourceNode { let this = jsObject - return this[Strings.blob].function!(this: this, arguments: []).fromJSValue()! + return this[Strings.createMediaElementSource].function!(this: this, arguments: [mediaElement.jsValue]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable func blob() async throws -> Blob { + @inlinable public func createMediaStreamSource(mediaStream: MediaStream) -> MediaStreamAudioSourceNode { let this = jsObject - let _promise: JSPromise = this[Strings.blob].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! + return this[Strings.createMediaStreamSource].function!(this: this, arguments: [mediaStream.jsValue]).fromJSValue()! } - @inlinable func formData() -> JSPromise { + @inlinable public func createMediaStreamTrackSource(mediaStreamTrack: MediaStreamTrack) -> MediaStreamTrackAudioSourceNode { let this = jsObject - return this[Strings.formData].function!(this: this, arguments: []).fromJSValue()! + return this[Strings.createMediaStreamTrackSource].function!(this: this, arguments: [mediaStreamTrack.jsValue]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable func formData() async throws -> FormData { + @inlinable public func createMediaStreamDestination() -> MediaStreamAudioDestinationNode { let this = jsObject - let _promise: JSPromise = this[Strings.formData].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! + return this[Strings.createMediaStreamDestination].function!(this: this, arguments: []).fromJSValue()! } +} - @inlinable func json() -> JSPromise { - let this = jsObject - return this[Strings.json].function!(this: this, arguments: []).fromJSValue()! +public enum AudioContextLatencyCategory: JSString, JSValueCompatible { + case balanced = "balanced" + case interactive = "interactive" + case playback = "playback" + + @inlinable public static func construct(from jsValue: JSValue) -> Self? { + if let string = jsValue.jsString { + return Self(rawValue: string) + } + return nil } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable func json() async throws -> JSValue { - let this = jsObject - let _promise: JSPromise = this[Strings.json].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! + @inlinable public init?(string: String) { + self.init(rawValue: JSString(string)) } - @inlinable func text() -> JSPromise { - let this = jsObject - return this[Strings.text].function!(this: this, arguments: []).fromJSValue()! + @inlinable public var jsValue: JSValue { rawValue.jsValue } +} + +public class AudioContextOptions: BridgedDictionary { + public convenience init(latencyHint: AudioContextLatencyCategory_or_Double, sampleRate: Float) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.latencyHint] = latencyHint.jsValue + object[Strings.sampleRate] = sampleRate.jsValue + self.init(unsafelyWrapping: object) } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable func text() async throws -> String { - let this = jsObject - let _promise: JSPromise = this[Strings.text].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! + public required init(unsafelyWrapping object: JSObject) { + _latencyHint = ReadWriteAttribute(jsObject: object, name: Strings.latencyHint) + _sampleRate = ReadWriteAttribute(jsObject: object, name: Strings.sampleRate) + super.init(unsafelyWrapping: object) } + + @ReadWriteAttribute + public var latencyHint: AudioContextLatencyCategory_or_Double + + @ReadWriteAttribute + public var sampleRate: Float } -public class BroadcastChannel: EventTarget { - @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.BroadcastChannel].function! } +public enum AudioContextState: JSString, JSValueCompatible { + case suspended = "suspended" + case running = "running" + case closed = "closed" - public required init(unsafelyWrapping jsObject: JSObject) { - _name = ReadonlyAttribute(jsObject: jsObject, name: Strings.name) - _onmessage = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onmessage) - _onmessageerror = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onmessageerror) - super.init(unsafelyWrapping: jsObject) + @inlinable public static func construct(from jsValue: JSValue) -> Self? { + if let string = jsValue.jsString { + return Self(rawValue: string) + } + return nil } - @inlinable public convenience init(name: String) { - self.init(unsafelyWrapping: Self.constructor.new(arguments: [name.jsValue])) + @inlinable public init?(string: String) { + self.init(rawValue: JSString(string)) } - @ReadonlyAttribute - public var name: String + @inlinable public var jsValue: JSValue { rawValue.jsValue } +} - @inlinable public func postMessage(message: JSValue) { - let this = jsObject - _ = this[Strings.postMessage].function!(this: this, arguments: [message.jsValue]) - } +public class AudioDestinationNode: AudioNode { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.AudioDestinationNode].function! } - @inlinable public func close() { - let this = jsObject - _ = this[Strings.close].function!(this: this, arguments: []) + public required init(unsafelyWrapping jsObject: JSObject) { + _maxChannelCount = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxChannelCount) + super.init(unsafelyWrapping: jsObject) } - @ClosureAttribute1Optional - public var onmessage: EventHandler - - @ClosureAttribute1Optional - public var onmessageerror: EventHandler + @ReadonlyAttribute + public var maxChannelCount: UInt32 } -public class ByteLengthQueuingStrategy: JSBridgedClass { - @inlinable public class var constructor: JSFunction { JSObject.global[Strings.ByteLengthQueuingStrategy].function! } +public class AudioListener: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.AudioListener].function! } public let jsObject: JSObject public required init(unsafelyWrapping jsObject: JSObject) { - _highWaterMark = ReadonlyAttribute(jsObject: jsObject, name: Strings.highWaterMark) - _size = ReadonlyAttribute(jsObject: jsObject, name: Strings.size) + _positionX = ReadonlyAttribute(jsObject: jsObject, name: Strings.positionX) + _positionY = ReadonlyAttribute(jsObject: jsObject, name: Strings.positionY) + _positionZ = ReadonlyAttribute(jsObject: jsObject, name: Strings.positionZ) + _forwardX = ReadonlyAttribute(jsObject: jsObject, name: Strings.forwardX) + _forwardY = ReadonlyAttribute(jsObject: jsObject, name: Strings.forwardY) + _forwardZ = ReadonlyAttribute(jsObject: jsObject, name: Strings.forwardZ) + _upX = ReadonlyAttribute(jsObject: jsObject, name: Strings.upX) + _upY = ReadonlyAttribute(jsObject: jsObject, name: Strings.upY) + _upZ = ReadonlyAttribute(jsObject: jsObject, name: Strings.upZ) self.jsObject = jsObject } - @inlinable public convenience init(init: QueuingStrategyInit) { - self.init(unsafelyWrapping: Self.constructor.new(arguments: [`init`.jsValue])) - } + @ReadonlyAttribute + public var positionX: AudioParam @ReadonlyAttribute - public var highWaterMark: Double + public var positionY: AudioParam @ReadonlyAttribute - public var size: JSFunction -} + public var positionZ: AudioParam -public class CDATASection: Text { - @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.CDATASection].function! } + @ReadonlyAttribute + public var forwardX: AudioParam - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } -} + @ReadonlyAttribute + public var forwardY: AudioParam -public class Cache: JSBridgedClass { - @inlinable public class var constructor: JSFunction { JSObject.global[Strings.Cache].function! } + @ReadonlyAttribute + public var forwardZ: AudioParam - public let jsObject: JSObject + @ReadonlyAttribute + public var upX: AudioParam - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + @ReadonlyAttribute + public var upY: AudioParam - @inlinable public func match(request: RequestInfo, options: CacheQueryOptions? = nil) -> JSPromise { - let this = jsObject - return this[Strings.match].function!(this: this, arguments: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()! - } + @ReadonlyAttribute + public var upZ: AudioParam - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func match(request: RequestInfo, options: CacheQueryOptions? = nil) async throws -> Response? { + @inlinable public func setPosition(x: Float, y: Float, z: Float) { let this = jsObject - let _promise: JSPromise = this[Strings.match].function!(this: this, arguments: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()! - return try await _promise.value.fromJSValue()! + _ = this[Strings.setPosition].function!(this: this, arguments: [x.jsValue, y.jsValue, z.jsValue]) } - @inlinable public func matchAll(request: RequestInfo? = nil, options: CacheQueryOptions? = nil) -> JSPromise { + @inlinable public func setOrientation(x: Float, y: Float, z: Float, xUp: Float, yUp: Float, zUp: Float) { + let _arg0 = x.jsValue + let _arg1 = y.jsValue + let _arg2 = z.jsValue + let _arg3 = xUp.jsValue + let _arg4 = yUp.jsValue + let _arg5 = zUp.jsValue let this = jsObject - return this[Strings.matchAll].function!(this: this, arguments: [request?.jsValue ?? .undefined, options?.jsValue ?? .undefined]).fromJSValue()! + _ = this[Strings.setOrientation].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5]) } +} - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func matchAll(request: RequestInfo? = nil, options: CacheQueryOptions? = nil) async throws -> [Response] { - let this = jsObject - let _promise: JSPromise = this[Strings.matchAll].function!(this: this, arguments: [request?.jsValue ?? .undefined, options?.jsValue ?? .undefined]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } +public class AudioNode: EventTarget { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.AudioNode].function! } - @inlinable public func add(request: RequestInfo) -> JSPromise { - let this = jsObject - return this[Strings.add].function!(this: this, arguments: [request.jsValue]).fromJSValue()! + public required init(unsafelyWrapping jsObject: JSObject) { + _context = ReadonlyAttribute(jsObject: jsObject, name: Strings.context) + _numberOfInputs = ReadonlyAttribute(jsObject: jsObject, name: Strings.numberOfInputs) + _numberOfOutputs = ReadonlyAttribute(jsObject: jsObject, name: Strings.numberOfOutputs) + _channelCount = ReadWriteAttribute(jsObject: jsObject, name: Strings.channelCount) + _channelCountMode = ReadWriteAttribute(jsObject: jsObject, name: Strings.channelCountMode) + _channelInterpretation = ReadWriteAttribute(jsObject: jsObject, name: Strings.channelInterpretation) + super.init(unsafelyWrapping: jsObject) } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func add(request: RequestInfo) async throws { + @inlinable public func connect(destinationNode: AudioNode, output: UInt32? = nil, input: UInt32? = nil) -> Self { let this = jsObject - let _promise: JSPromise = this[Strings.add].function!(this: this, arguments: [request.jsValue]).fromJSValue()! - _ = try await _promise.value + return this[Strings.connect].function!(this: this, arguments: [destinationNode.jsValue, output?.jsValue ?? .undefined, input?.jsValue ?? .undefined]).fromJSValue()! } - @inlinable public func addAll(requests: [RequestInfo]) -> JSPromise { + @inlinable public func connect(destinationParam: AudioParam, output: UInt32? = nil) { let this = jsObject - return this[Strings.addAll].function!(this: this, arguments: [requests.jsValue]).fromJSValue()! + _ = this[Strings.connect].function!(this: this, arguments: [destinationParam.jsValue, output?.jsValue ?? .undefined]) } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func addAll(requests: [RequestInfo]) async throws { + @inlinable public func disconnect() { let this = jsObject - let _promise: JSPromise = this[Strings.addAll].function!(this: this, arguments: [requests.jsValue]).fromJSValue()! - _ = try await _promise.value + _ = this[Strings.disconnect].function!(this: this, arguments: []) } - @inlinable public func put(request: RequestInfo, response: Response) -> JSPromise { + @inlinable public func disconnect(output: UInt32) { let this = jsObject - return this[Strings.put].function!(this: this, arguments: [request.jsValue, response.jsValue]).fromJSValue()! + _ = this[Strings.disconnect].function!(this: this, arguments: [output.jsValue]) } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func put(request: RequestInfo, response: Response) async throws { + @inlinable public func disconnect(destinationNode: AudioNode) { let this = jsObject - let _promise: JSPromise = this[Strings.put].function!(this: this, arguments: [request.jsValue, response.jsValue]).fromJSValue()! - _ = try await _promise.value + _ = this[Strings.disconnect].function!(this: this, arguments: [destinationNode.jsValue]) } - @inlinable public func delete(request: RequestInfo, options: CacheQueryOptions? = nil) -> JSPromise { + @inlinable public func disconnect(destinationNode: AudioNode, output: UInt32) { let this = jsObject - return this[Strings.delete].function!(this: this, arguments: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()! + _ = this[Strings.disconnect].function!(this: this, arguments: [destinationNode.jsValue, output.jsValue]) } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func delete(request: RequestInfo, options: CacheQueryOptions? = nil) async throws -> Bool { + @inlinable public func disconnect(destinationNode: AudioNode, output: UInt32, input: UInt32) { let this = jsObject - let _promise: JSPromise = this[Strings.delete].function!(this: this, arguments: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()! - return try await _promise.value.fromJSValue()! + _ = this[Strings.disconnect].function!(this: this, arguments: [destinationNode.jsValue, output.jsValue, input.jsValue]) } - @inlinable public func keys(request: RequestInfo? = nil, options: CacheQueryOptions? = nil) -> JSPromise { + @inlinable public func disconnect(destinationParam: AudioParam) { let this = jsObject - return this[Strings.keys].function!(this: this, arguments: [request?.jsValue ?? .undefined, options?.jsValue ?? .undefined]).fromJSValue()! + _ = this[Strings.disconnect].function!(this: this, arguments: [destinationParam.jsValue]) } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func keys(request: RequestInfo? = nil, options: CacheQueryOptions? = nil) async throws -> [Request] { + @inlinable public func disconnect(destinationParam: AudioParam, output: UInt32) { let this = jsObject - let _promise: JSPromise = this[Strings.keys].function!(this: this, arguments: [request?.jsValue ?? .undefined, options?.jsValue ?? .undefined]).fromJSValue()! - return try await _promise.value.fromJSValue()! + _ = this[Strings.disconnect].function!(this: this, arguments: [destinationParam.jsValue, output.jsValue]) } + + @ReadonlyAttribute + public var context: BaseAudioContext + + @ReadonlyAttribute + public var numberOfInputs: UInt32 + + @ReadonlyAttribute + public var numberOfOutputs: UInt32 + + @ReadWriteAttribute + public var channelCount: UInt32 + + @ReadWriteAttribute + public var channelCountMode: ChannelCountMode + + @ReadWriteAttribute + public var channelInterpretation: ChannelInterpretation } -public class CacheQueryOptions: BridgedDictionary { - public convenience init(ignoreSearch: Bool, ignoreMethod: Bool, ignoreVary: Bool) { +public class AudioNodeOptions: BridgedDictionary { + public convenience init(channelCount: UInt32, channelCountMode: ChannelCountMode, channelInterpretation: ChannelInterpretation) { let object = JSObject.global[Strings.Object].function!.new() - object[Strings.ignoreSearch] = ignoreSearch.jsValue - object[Strings.ignoreMethod] = ignoreMethod.jsValue - object[Strings.ignoreVary] = ignoreVary.jsValue + object[Strings.channelCount] = channelCount.jsValue + object[Strings.channelCountMode] = channelCountMode.jsValue + object[Strings.channelInterpretation] = channelInterpretation.jsValue self.init(unsafelyWrapping: object) } public required init(unsafelyWrapping object: JSObject) { - _ignoreSearch = ReadWriteAttribute(jsObject: object, name: Strings.ignoreSearch) - _ignoreMethod = ReadWriteAttribute(jsObject: object, name: Strings.ignoreMethod) - _ignoreVary = ReadWriteAttribute(jsObject: object, name: Strings.ignoreVary) + _channelCount = ReadWriteAttribute(jsObject: object, name: Strings.channelCount) + _channelCountMode = ReadWriteAttribute(jsObject: object, name: Strings.channelCountMode) + _channelInterpretation = ReadWriteAttribute(jsObject: object, name: Strings.channelInterpretation) super.init(unsafelyWrapping: object) } @ReadWriteAttribute - public var ignoreSearch: Bool + public var channelCount: UInt32 @ReadWriteAttribute - public var ignoreMethod: Bool + public var channelCountMode: ChannelCountMode @ReadWriteAttribute - public var ignoreVary: Bool + public var channelInterpretation: ChannelInterpretation } -public class CacheStorage: JSBridgedClass { - @inlinable public class var constructor: JSFunction { JSObject.global[Strings.CacheStorage].function! } +public class AudioParam: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.AudioParam].function! } public let jsObject: JSObject public required init(unsafelyWrapping jsObject: JSObject) { + _value = ReadWriteAttribute(jsObject: jsObject, name: Strings.value) + _automationRate = ReadWriteAttribute(jsObject: jsObject, name: Strings.automationRate) + _defaultValue = ReadonlyAttribute(jsObject: jsObject, name: Strings.defaultValue) + _minValue = ReadonlyAttribute(jsObject: jsObject, name: Strings.minValue) + _maxValue = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxValue) self.jsObject = jsObject } - @inlinable public func match(request: RequestInfo, options: MultiCacheQueryOptions? = nil) -> JSPromise { - let this = jsObject - return this[Strings.match].function!(this: this, arguments: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()! - } + @ReadWriteAttribute + public var value: Float - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func match(request: RequestInfo, options: MultiCacheQueryOptions? = nil) async throws -> Response? { - let this = jsObject - let _promise: JSPromise = this[Strings.match].function!(this: this, arguments: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + @ReadWriteAttribute + public var automationRate: AutomationRate - @inlinable public func has(cacheName: String) -> JSPromise { - let this = jsObject - return this[Strings.has].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()! - } + @ReadonlyAttribute + public var defaultValue: Float - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func has(cacheName: String) async throws -> Bool { + @ReadonlyAttribute + public var minValue: Float + + @ReadonlyAttribute + public var maxValue: Float + + @inlinable public func setValueAtTime(value: Float, startTime: Double) -> Self { let this = jsObject - let _promise: JSPromise = this[Strings.has].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()! - return try await _promise.value.fromJSValue()! + return this[Strings.setValueAtTime].function!(this: this, arguments: [value.jsValue, startTime.jsValue]).fromJSValue()! } - @inlinable public func open(cacheName: String) -> JSPromise { + @inlinable public func linearRampToValueAtTime(value: Float, endTime: Double) -> Self { let this = jsObject - return this[Strings.open].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()! + return this[Strings.linearRampToValueAtTime].function!(this: this, arguments: [value.jsValue, endTime.jsValue]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func open(cacheName: String) async throws -> Cache { + @inlinable public func exponentialRampToValueAtTime(value: Float, endTime: Double) -> Self { let this = jsObject - let _promise: JSPromise = this[Strings.open].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()! - return try await _promise.value.fromJSValue()! + return this[Strings.exponentialRampToValueAtTime].function!(this: this, arguments: [value.jsValue, endTime.jsValue]).fromJSValue()! } - @inlinable public func delete(cacheName: String) -> JSPromise { + @inlinable public func setTargetAtTime(target: Float, startTime: Double, timeConstant: Float) -> Self { let this = jsObject - return this[Strings.delete].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()! + return this[Strings.setTargetAtTime].function!(this: this, arguments: [target.jsValue, startTime.jsValue, timeConstant.jsValue]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func delete(cacheName: String) async throws -> Bool { + @inlinable public func setValueCurveAtTime(values: [Float], startTime: Double, duration: Double) -> Self { let this = jsObject - let _promise: JSPromise = this[Strings.delete].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()! - return try await _promise.value.fromJSValue()! + return this[Strings.setValueCurveAtTime].function!(this: this, arguments: [values.jsValue, startTime.jsValue, duration.jsValue]).fromJSValue()! } - @inlinable public func keys() -> JSPromise { + @inlinable public func cancelScheduledValues(cancelTime: Double) -> Self { let this = jsObject - return this[Strings.keys].function!(this: this, arguments: []).fromJSValue()! + return this[Strings.cancelScheduledValues].function!(this: this, arguments: [cancelTime.jsValue]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func keys() async throws -> [String] { + @inlinable public func cancelAndHoldAtTime(cancelTime: Double) -> Self { let this = jsObject - let _promise: JSPromise = this[Strings.keys].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! + return this[Strings.cancelAndHoldAtTime].function!(this: this, arguments: [cancelTime.jsValue]).fromJSValue()! } } -public class CameraDevicePermissionDescriptor: BridgedDictionary { - public convenience init(panTiltZoom: Bool) { +public class AudioParamDescriptor: BridgedDictionary { + public convenience init(name: String, defaultValue: Float, minValue: Float, maxValue: Float, automationRate: AutomationRate) { let object = JSObject.global[Strings.Object].function!.new() - object[Strings.panTiltZoom] = panTiltZoom.jsValue + object[Strings.name] = name.jsValue + object[Strings.defaultValue] = defaultValue.jsValue + object[Strings.minValue] = minValue.jsValue + object[Strings.maxValue] = maxValue.jsValue + object[Strings.automationRate] = automationRate.jsValue self.init(unsafelyWrapping: object) } public required init(unsafelyWrapping object: JSObject) { - _panTiltZoom = ReadWriteAttribute(jsObject: object, name: Strings.panTiltZoom) + _name = ReadWriteAttribute(jsObject: object, name: Strings.name) + _defaultValue = ReadWriteAttribute(jsObject: object, name: Strings.defaultValue) + _minValue = ReadWriteAttribute(jsObject: object, name: Strings.minValue) + _maxValue = ReadWriteAttribute(jsObject: object, name: Strings.maxValue) + _automationRate = ReadWriteAttribute(jsObject: object, name: Strings.automationRate) super.init(unsafelyWrapping: object) } @ReadWriteAttribute - public var panTiltZoom: Bool -} + public var name: String -public enum CanPlayTypeResult: JSString, JSValueCompatible { - case _empty = "" - case maybe = "maybe" - case probably = "probably" + @ReadWriteAttribute + public var defaultValue: Float - @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } - return nil - } + @ReadWriteAttribute + public var minValue: Float - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @ReadWriteAttribute + public var maxValue: Float - @inlinable public var jsValue: JSValue { rawValue.jsValue } + @ReadWriteAttribute + public var automationRate: AutomationRate } -public protocol CanvasCompositing: JSBridgedClass {} -public extension CanvasCompositing { +public class AudioParamMap: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.AudioParamMap].function! } + + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { + self.jsObject = jsObject + } + + // XXX: make me Map-like! +} + +public class AudioProcessingEvent: Event { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.AudioProcessingEvent].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _playbackTime = ReadonlyAttribute(jsObject: jsObject, name: Strings.playbackTime) + _inputBuffer = ReadonlyAttribute(jsObject: jsObject, name: Strings.inputBuffer) + _outputBuffer = ReadonlyAttribute(jsObject: jsObject, name: Strings.outputBuffer) + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(type: String, eventInitDict: AudioProcessingEventInit) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [type.jsValue, eventInitDict.jsValue])) + } + + @ReadonlyAttribute + public var playbackTime: Double + + @ReadonlyAttribute + public var inputBuffer: AudioBuffer + + @ReadonlyAttribute + public var outputBuffer: AudioBuffer +} + +public class AudioProcessingEventInit: BridgedDictionary { + public convenience init(playbackTime: Double, inputBuffer: AudioBuffer, outputBuffer: AudioBuffer) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.playbackTime] = playbackTime.jsValue + object[Strings.inputBuffer] = inputBuffer.jsValue + object[Strings.outputBuffer] = outputBuffer.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _playbackTime = ReadWriteAttribute(jsObject: object, name: Strings.playbackTime) + _inputBuffer = ReadWriteAttribute(jsObject: object, name: Strings.inputBuffer) + _outputBuffer = ReadWriteAttribute(jsObject: object, name: Strings.outputBuffer) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var playbackTime: Double + + @ReadWriteAttribute + public var inputBuffer: AudioBuffer + + @ReadWriteAttribute + public var outputBuffer: AudioBuffer +} + +public class AudioScheduledSourceNode: AudioNode { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.AudioScheduledSourceNode].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _onended = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onended) + super.init(unsafelyWrapping: jsObject) + } + + @ClosureAttribute1Optional + public var onended: EventHandler + + @inlinable public func start(when: Double? = nil) { + let this = jsObject + _ = this[Strings.start].function!(this: this, arguments: [when?.jsValue ?? .undefined]) + } + + @inlinable public func stop(when: Double? = nil) { + let this = jsObject + _ = this[Strings.stop].function!(this: this, arguments: [when?.jsValue ?? .undefined]) + } +} + +public class AudioTimestamp: BridgedDictionary { + public convenience init(contextTime: Double, performanceTime: DOMHighResTimeStamp) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.contextTime] = contextTime.jsValue + object[Strings.performanceTime] = performanceTime.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _contextTime = ReadWriteAttribute(jsObject: object, name: Strings.contextTime) + _performanceTime = ReadWriteAttribute(jsObject: object, name: Strings.performanceTime) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var contextTime: Double + + @ReadWriteAttribute + public var performanceTime: DOMHighResTimeStamp +} + +public class AudioTrack: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.AudioTrack].function! } + + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { + _id = ReadonlyAttribute(jsObject: jsObject, name: Strings.id) + _kind = ReadonlyAttribute(jsObject: jsObject, name: Strings.kind) + _label = ReadonlyAttribute(jsObject: jsObject, name: Strings.label) + _language = ReadonlyAttribute(jsObject: jsObject, name: Strings.language) + _enabled = ReadWriteAttribute(jsObject: jsObject, name: Strings.enabled) + self.jsObject = jsObject + } + + @ReadonlyAttribute + public var id: String + + @ReadonlyAttribute + public var kind: String + + @ReadonlyAttribute + public var label: String + + @ReadonlyAttribute + public var language: String + + @ReadWriteAttribute + public var enabled: Bool +} + +public class AudioTrackList: EventTarget { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.AudioTrackList].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) + _onchange = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onchange) + _onaddtrack = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onaddtrack) + _onremovetrack = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onremovetrack) + super.init(unsafelyWrapping: jsObject) + } + + @ReadonlyAttribute + public var length: UInt32 + + @inlinable public subscript(key: Int) -> AudioTrack { + jsObject[key].fromJSValue()! + } + + @inlinable public func getTrackById(id: String) -> AudioTrack? { + let this = jsObject + return this[Strings.getTrackById].function!(this: this, arguments: [id.jsValue]).fromJSValue()! + } + + @ClosureAttribute1Optional + public var onchange: EventHandler + + @ClosureAttribute1Optional + public var onaddtrack: EventHandler + + @ClosureAttribute1Optional + public var onremovetrack: EventHandler +} + +public class AudioWorklet: Worklet { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.AudioWorklet].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + super.init(unsafelyWrapping: jsObject) + } +} + +public class AudioWorkletNode: AudioNode { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.AudioWorkletNode].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _parameters = ReadonlyAttribute(jsObject: jsObject, name: Strings.parameters) + _port = ReadonlyAttribute(jsObject: jsObject, name: Strings.port) + _onprocessorerror = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onprocessorerror) + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(context: BaseAudioContext, name: String, options: AudioWorkletNodeOptions? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [context.jsValue, name.jsValue, options?.jsValue ?? .undefined])) + } + + @ReadonlyAttribute + public var parameters: AudioParamMap + + @ReadonlyAttribute + public var port: MessagePort + + @ClosureAttribute1Optional + public var onprocessorerror: EventHandler +} + +public class AudioWorkletNodeOptions: BridgedDictionary { + public convenience init(numberOfInputs: UInt32, numberOfOutputs: UInt32, outputChannelCount: [UInt32], parameterData: [String: Double], processorOptions: JSObject) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.numberOfInputs] = numberOfInputs.jsValue + object[Strings.numberOfOutputs] = numberOfOutputs.jsValue + object[Strings.outputChannelCount] = outputChannelCount.jsValue + object[Strings.parameterData] = parameterData.jsValue + object[Strings.processorOptions] = processorOptions.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _numberOfInputs = ReadWriteAttribute(jsObject: object, name: Strings.numberOfInputs) + _numberOfOutputs = ReadWriteAttribute(jsObject: object, name: Strings.numberOfOutputs) + _outputChannelCount = ReadWriteAttribute(jsObject: object, name: Strings.outputChannelCount) + _parameterData = ReadWriteAttribute(jsObject: object, name: Strings.parameterData) + _processorOptions = ReadWriteAttribute(jsObject: object, name: Strings.processorOptions) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var numberOfInputs: UInt32 + + @ReadWriteAttribute + public var numberOfOutputs: UInt32 + + @ReadWriteAttribute + public var outputChannelCount: [UInt32] + + @ReadWriteAttribute + public var parameterData: [String: Double] + + @ReadWriteAttribute + public var processorOptions: JSObject +} + +public enum AutomationRate: JSString, JSValueCompatible { + case aRate = "a-rate" + case kRate = "k-rate" + + @inlinable public static func construct(from jsValue: JSValue) -> Self? { + if let string = jsValue.jsString { + return Self(rawValue: string) + } + return nil + } + + @inlinable public init?(string: String) { + self.init(rawValue: JSString(string)) + } + + @inlinable public var jsValue: JSValue { rawValue.jsValue } +} + +public class BarProp: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.BarProp].function! } + + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { + _visible = ReadonlyAttribute(jsObject: jsObject, name: Strings.visible) + self.jsObject = jsObject + } + + @ReadonlyAttribute + public var visible: Bool +} + +public class BaseAudioContext: EventTarget { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.BaseAudioContext].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _destination = ReadonlyAttribute(jsObject: jsObject, name: Strings.destination) + _sampleRate = ReadonlyAttribute(jsObject: jsObject, name: Strings.sampleRate) + _currentTime = ReadonlyAttribute(jsObject: jsObject, name: Strings.currentTime) + _listener = ReadonlyAttribute(jsObject: jsObject, name: Strings.listener) + _state = ReadonlyAttribute(jsObject: jsObject, name: Strings.state) + _audioWorklet = ReadonlyAttribute(jsObject: jsObject, name: Strings.audioWorklet) + _onstatechange = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onstatechange) + super.init(unsafelyWrapping: jsObject) + } + + @ReadonlyAttribute + public var destination: AudioDestinationNode + + @ReadonlyAttribute + public var sampleRate: Float + + @ReadonlyAttribute + public var currentTime: Double + + @ReadonlyAttribute + public var listener: AudioListener + + @ReadonlyAttribute + public var state: AudioContextState + + @ReadonlyAttribute + public var audioWorklet: AudioWorklet + + @ClosureAttribute1Optional + public var onstatechange: EventHandler + + @inlinable public func createAnalyser() -> AnalyserNode { + let this = jsObject + return this[Strings.createAnalyser].function!(this: this, arguments: []).fromJSValue()! + } + + @inlinable public func createBiquadFilter() -> BiquadFilterNode { + let this = jsObject + return this[Strings.createBiquadFilter].function!(this: this, arguments: []).fromJSValue()! + } + + @inlinable public func createBuffer(numberOfChannels: UInt32, length: UInt32, sampleRate: Float) -> AudioBuffer { + let this = jsObject + return this[Strings.createBuffer].function!(this: this, arguments: [numberOfChannels.jsValue, length.jsValue, sampleRate.jsValue]).fromJSValue()! + } + + @inlinable public func createBufferSource() -> AudioBufferSourceNode { + let this = jsObject + return this[Strings.createBufferSource].function!(this: this, arguments: []).fromJSValue()! + } + + @inlinable public func createChannelMerger(numberOfInputs: UInt32? = nil) -> ChannelMergerNode { + let this = jsObject + return this[Strings.createChannelMerger].function!(this: this, arguments: [numberOfInputs?.jsValue ?? .undefined]).fromJSValue()! + } + + @inlinable public func createChannelSplitter(numberOfOutputs: UInt32? = nil) -> ChannelSplitterNode { + let this = jsObject + return this[Strings.createChannelSplitter].function!(this: this, arguments: [numberOfOutputs?.jsValue ?? .undefined]).fromJSValue()! + } + + @inlinable public func createConstantSource() -> ConstantSourceNode { + let this = jsObject + return this[Strings.createConstantSource].function!(this: this, arguments: []).fromJSValue()! + } + + @inlinable public func createConvolver() -> ConvolverNode { + let this = jsObject + return this[Strings.createConvolver].function!(this: this, arguments: []).fromJSValue()! + } + + @inlinable public func createDelay(maxDelayTime: Double? = nil) -> DelayNode { + let this = jsObject + return this[Strings.createDelay].function!(this: this, arguments: [maxDelayTime?.jsValue ?? .undefined]).fromJSValue()! + } + + @inlinable public func createDynamicsCompressor() -> DynamicsCompressorNode { + let this = jsObject + return this[Strings.createDynamicsCompressor].function!(this: this, arguments: []).fromJSValue()! + } + + @inlinable public func createGain() -> GainNode { + let this = jsObject + return this[Strings.createGain].function!(this: this, arguments: []).fromJSValue()! + } + + @inlinable public func createIIRFilter(feedforward: [Double], feedback: [Double]) -> IIRFilterNode { + let this = jsObject + return this[Strings.createIIRFilter].function!(this: this, arguments: [feedforward.jsValue, feedback.jsValue]).fromJSValue()! + } + + @inlinable public func createOscillator() -> OscillatorNode { + let this = jsObject + return this[Strings.createOscillator].function!(this: this, arguments: []).fromJSValue()! + } + + @inlinable public func createPanner() -> PannerNode { + let this = jsObject + return this[Strings.createPanner].function!(this: this, arguments: []).fromJSValue()! + } + + @inlinable public func createPeriodicWave(real: [Float], imag: [Float], constraints: PeriodicWaveConstraints? = nil) -> PeriodicWave { + let this = jsObject + return this[Strings.createPeriodicWave].function!(this: this, arguments: [real.jsValue, imag.jsValue, constraints?.jsValue ?? .undefined]).fromJSValue()! + } + + @inlinable public func createScriptProcessor(bufferSize: UInt32? = nil, numberOfInputChannels: UInt32? = nil, numberOfOutputChannels: UInt32? = nil) -> ScriptProcessorNode { + let this = jsObject + return this[Strings.createScriptProcessor].function!(this: this, arguments: [bufferSize?.jsValue ?? .undefined, numberOfInputChannels?.jsValue ?? .undefined, numberOfOutputChannels?.jsValue ?? .undefined]).fromJSValue()! + } + + @inlinable public func createStereoPanner() -> StereoPannerNode { + let this = jsObject + return this[Strings.createStereoPanner].function!(this: this, arguments: []).fromJSValue()! + } + + @inlinable public func createWaveShaper() -> WaveShaperNode { + let this = jsObject + return this[Strings.createWaveShaper].function!(this: this, arguments: []).fromJSValue()! + } + + // XXX: member 'decodeAudioData' is ignored + + // XXX: member 'decodeAudioData' is ignored +} + +public class BaseComputedKeyframe: BridgedDictionary { + public convenience init(offset: Double?, computedOffset: Double, easing: String, composite: CompositeOperationOrAuto) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.offset] = offset.jsValue + object[Strings.computedOffset] = computedOffset.jsValue + object[Strings.easing] = easing.jsValue + object[Strings.composite] = composite.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _offset = ReadWriteAttribute(jsObject: object, name: Strings.offset) + _computedOffset = ReadWriteAttribute(jsObject: object, name: Strings.computedOffset) + _easing = ReadWriteAttribute(jsObject: object, name: Strings.easing) + _composite = ReadWriteAttribute(jsObject: object, name: Strings.composite) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var offset: Double? + + @ReadWriteAttribute + public var computedOffset: Double + + @ReadWriteAttribute + public var easing: String + + @ReadWriteAttribute + public var composite: CompositeOperationOrAuto +} + +public class BaseKeyframe: BridgedDictionary { + public convenience init(offset: Double?, easing: String, composite: CompositeOperationOrAuto) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.offset] = offset.jsValue + object[Strings.easing] = easing.jsValue + object[Strings.composite] = composite.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _offset = ReadWriteAttribute(jsObject: object, name: Strings.offset) + _easing = ReadWriteAttribute(jsObject: object, name: Strings.easing) + _composite = ReadWriteAttribute(jsObject: object, name: Strings.composite) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var offset: Double? + + @ReadWriteAttribute + public var easing: String + + @ReadWriteAttribute + public var composite: CompositeOperationOrAuto +} + +public class BasePropertyIndexedKeyframe: BridgedDictionary { + public convenience init(offset: nullable_Double_or_seq_of_nullable_Double, easing: String_or_seq_of_String, composite: CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.offset] = offset.jsValue + object[Strings.easing] = easing.jsValue + object[Strings.composite] = composite.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _offset = ReadWriteAttribute(jsObject: object, name: Strings.offset) + _easing = ReadWriteAttribute(jsObject: object, name: Strings.easing) + _composite = ReadWriteAttribute(jsObject: object, name: Strings.composite) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var offset: nullable_Double_or_seq_of_nullable_Double + + @ReadWriteAttribute + public var easing: String_or_seq_of_String + + @ReadWriteAttribute + public var composite: CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto +} + +public class BeforeUnloadEvent: Event { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.BeforeUnloadEvent].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + super.init(unsafelyWrapping: jsObject) + } + + // XXX: member 'returnValue' is ignored +} + +public class BiquadFilterNode: AudioNode { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.BiquadFilterNode].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _type = ReadWriteAttribute(jsObject: jsObject, name: Strings.type) + _frequency = ReadonlyAttribute(jsObject: jsObject, name: Strings.frequency) + _detune = ReadonlyAttribute(jsObject: jsObject, name: Strings.detune) + _Q = ReadonlyAttribute(jsObject: jsObject, name: Strings.Q) + _gain = ReadonlyAttribute(jsObject: jsObject, name: Strings.gain) + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(context: BaseAudioContext, options: BiquadFilterOptions? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [context.jsValue, options?.jsValue ?? .undefined])) + } + + @ReadWriteAttribute + public var type: BiquadFilterType + + @ReadonlyAttribute + public var frequency: AudioParam + + @ReadonlyAttribute + public var detune: AudioParam + + @ReadonlyAttribute + public var Q: AudioParam + + @ReadonlyAttribute + public var gain: AudioParam + + @inlinable public func getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array) { + let this = jsObject + _ = this[Strings.getFrequencyResponse].function!(this: this, arguments: [frequencyHz.jsValue, magResponse.jsValue, phaseResponse.jsValue]) + } +} + +public class BiquadFilterOptions: BridgedDictionary { + public convenience init(type: BiquadFilterType, Q: Float, detune: Float, frequency: Float, gain: Float) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.type] = type.jsValue + object[Strings.Q] = Q.jsValue + object[Strings.detune] = detune.jsValue + object[Strings.frequency] = frequency.jsValue + object[Strings.gain] = gain.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _type = ReadWriteAttribute(jsObject: object, name: Strings.type) + _Q = ReadWriteAttribute(jsObject: object, name: Strings.Q) + _detune = ReadWriteAttribute(jsObject: object, name: Strings.detune) + _frequency = ReadWriteAttribute(jsObject: object, name: Strings.frequency) + _gain = ReadWriteAttribute(jsObject: object, name: Strings.gain) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var type: BiquadFilterType + + @ReadWriteAttribute + public var Q: Float + + @ReadWriteAttribute + public var detune: Float + + @ReadWriteAttribute + public var frequency: Float + + @ReadWriteAttribute + public var gain: Float +} + +public enum BiquadFilterType: JSString, JSValueCompatible { + case lowpass = "lowpass" + case highpass = "highpass" + case bandpass = "bandpass" + case lowshelf = "lowshelf" + case highshelf = "highshelf" + case peaking = "peaking" + case notch = "notch" + case allpass = "allpass" + + @inlinable public static func construct(from jsValue: JSValue) -> Self? { + if let string = jsValue.jsString { + return Self(rawValue: string) + } + return nil + } + + @inlinable public init?(string: String) { + self.init(rawValue: JSString(string)) + } + + @inlinable public var jsValue: JSValue { rawValue.jsValue } +} + +public class Blob: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.Blob].function! } + + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { + _size = ReadonlyAttribute(jsObject: jsObject, name: Strings.size) + _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type) + self.jsObject = jsObject + } + + @inlinable public convenience init(blobParts: [BlobPart]? = nil, options: BlobPropertyBag? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [blobParts?.jsValue ?? .undefined, options?.jsValue ?? .undefined])) + } + + @ReadonlyAttribute + public var size: UInt64 + + @ReadonlyAttribute + public var type: String + + @inlinable public func slice(start: Int64? = nil, end: Int64? = nil, contentType: String? = nil) -> Self { + let this = jsObject + return this[Strings.slice].function!(this: this, arguments: [start?.jsValue ?? .undefined, end?.jsValue ?? .undefined, contentType?.jsValue ?? .undefined]).fromJSValue()! + } + + // XXX: member 'stream' is ignored + + @inlinable public func text() -> JSPromise { + let this = jsObject + return this[Strings.text].function!(this: this, arguments: []).fromJSValue()! + } + + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public func text() async throws -> String { + let this = jsObject + let _promise: JSPromise = this[Strings.text].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + + @inlinable public func arrayBuffer() -> JSPromise { + let this = jsObject + return this[Strings.arrayBuffer].function!(this: this, arguments: []).fromJSValue()! + } + + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public func arrayBuffer() async throws -> ArrayBuffer { + let this = jsObject + let _promise: JSPromise = this[Strings.arrayBuffer].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } +} + +public class BlobPropertyBag: BridgedDictionary { + public convenience init(type: String, endings: EndingType) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.type] = type.jsValue + object[Strings.endings] = endings.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _type = ReadWriteAttribute(jsObject: object, name: Strings.type) + _endings = ReadWriteAttribute(jsObject: object, name: Strings.endings) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var type: String + + @ReadWriteAttribute + public var endings: EndingType +} + +public protocol Body: JSBridgedClass {} +public extension Body { + // XXX: attribute 'body' is ignored + + @inlinable var bodyUsed: Bool { ReadonlyAttribute[Strings.bodyUsed, in: jsObject] } + + @inlinable func arrayBuffer() -> JSPromise { + let this = jsObject + return this[Strings.arrayBuffer].function!(this: this, arguments: []).fromJSValue()! + } + + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable func arrayBuffer() async throws -> ArrayBuffer { + let this = jsObject + let _promise: JSPromise = this[Strings.arrayBuffer].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + + @inlinable func blob() -> JSPromise { + let this = jsObject + return this[Strings.blob].function!(this: this, arguments: []).fromJSValue()! + } + + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable func blob() async throws -> Blob { + let this = jsObject + let _promise: JSPromise = this[Strings.blob].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + + @inlinable func formData() -> JSPromise { + let this = jsObject + return this[Strings.formData].function!(this: this, arguments: []).fromJSValue()! + } + + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable func formData() async throws -> FormData { + let this = jsObject + let _promise: JSPromise = this[Strings.formData].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + + @inlinable func json() -> JSPromise { + let this = jsObject + return this[Strings.json].function!(this: this, arguments: []).fromJSValue()! + } + + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable func json() async throws -> JSValue { + let this = jsObject + let _promise: JSPromise = this[Strings.json].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + + @inlinable func text() -> JSPromise { + let this = jsObject + return this[Strings.text].function!(this: this, arguments: []).fromJSValue()! + } + + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable func text() async throws -> String { + let this = jsObject + let _promise: JSPromise = this[Strings.text].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } +} + +public class BroadcastChannel: EventTarget { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.BroadcastChannel].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _name = ReadonlyAttribute(jsObject: jsObject, name: Strings.name) + _onmessage = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onmessage) + _onmessageerror = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onmessageerror) + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(name: String) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [name.jsValue])) + } + + @ReadonlyAttribute + public var name: String + + @inlinable public func postMessage(message: JSValue) { + let this = jsObject + _ = this[Strings.postMessage].function!(this: this, arguments: [message.jsValue]) + } + + @inlinable public func close() { + let this = jsObject + _ = this[Strings.close].function!(this: this, arguments: []) + } + + @ClosureAttribute1Optional + public var onmessage: EventHandler + + @ClosureAttribute1Optional + public var onmessageerror: EventHandler +} + +public class ByteLengthQueuingStrategy: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.ByteLengthQueuingStrategy].function! } + + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { + _highWaterMark = ReadonlyAttribute(jsObject: jsObject, name: Strings.highWaterMark) + _size = ReadonlyAttribute(jsObject: jsObject, name: Strings.size) + self.jsObject = jsObject + } + + @inlinable public convenience init(init: QueuingStrategyInit) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [`init`.jsValue])) + } + + @ReadonlyAttribute + public var highWaterMark: Double + + @ReadonlyAttribute + public var size: JSFunction +} + +public class CDATASection: Text { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.CDATASection].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + super.init(unsafelyWrapping: jsObject) + } +} + +public class Cache: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.Cache].function! } + + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { + self.jsObject = jsObject + } + + @inlinable public func match(request: RequestInfo, options: CacheQueryOptions? = nil) -> JSPromise { + let this = jsObject + return this[Strings.match].function!(this: this, arguments: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()! + } + + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public func match(request: RequestInfo, options: CacheQueryOptions? = nil) async throws -> Response? { + let this = jsObject + let _promise: JSPromise = this[Strings.match].function!(this: this, arguments: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + + @inlinable public func matchAll(request: RequestInfo? = nil, options: CacheQueryOptions? = nil) -> JSPromise { + let this = jsObject + return this[Strings.matchAll].function!(this: this, arguments: [request?.jsValue ?? .undefined, options?.jsValue ?? .undefined]).fromJSValue()! + } + + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public func matchAll(request: RequestInfo? = nil, options: CacheQueryOptions? = nil) async throws -> [Response] { + let this = jsObject + let _promise: JSPromise = this[Strings.matchAll].function!(this: this, arguments: [request?.jsValue ?? .undefined, options?.jsValue ?? .undefined]).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + + @inlinable public func add(request: RequestInfo) -> JSPromise { + let this = jsObject + return this[Strings.add].function!(this: this, arguments: [request.jsValue]).fromJSValue()! + } + + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public func add(request: RequestInfo) async throws { + let this = jsObject + let _promise: JSPromise = this[Strings.add].function!(this: this, arguments: [request.jsValue]).fromJSValue()! + _ = try await _promise.value + } + + @inlinable public func addAll(requests: [RequestInfo]) -> JSPromise { + let this = jsObject + return this[Strings.addAll].function!(this: this, arguments: [requests.jsValue]).fromJSValue()! + } + + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public func addAll(requests: [RequestInfo]) async throws { + let this = jsObject + let _promise: JSPromise = this[Strings.addAll].function!(this: this, arguments: [requests.jsValue]).fromJSValue()! + _ = try await _promise.value + } + + @inlinable public func put(request: RequestInfo, response: Response) -> JSPromise { + let this = jsObject + return this[Strings.put].function!(this: this, arguments: [request.jsValue, response.jsValue]).fromJSValue()! + } + + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public func put(request: RequestInfo, response: Response) async throws { + let this = jsObject + let _promise: JSPromise = this[Strings.put].function!(this: this, arguments: [request.jsValue, response.jsValue]).fromJSValue()! + _ = try await _promise.value + } + + @inlinable public func delete(request: RequestInfo, options: CacheQueryOptions? = nil) -> JSPromise { + let this = jsObject + return this[Strings.delete].function!(this: this, arguments: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()! + } + + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public func delete(request: RequestInfo, options: CacheQueryOptions? = nil) async throws -> Bool { + let this = jsObject + let _promise: JSPromise = this[Strings.delete].function!(this: this, arguments: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + + @inlinable public func keys(request: RequestInfo? = nil, options: CacheQueryOptions? = nil) -> JSPromise { + let this = jsObject + return this[Strings.keys].function!(this: this, arguments: [request?.jsValue ?? .undefined, options?.jsValue ?? .undefined]).fromJSValue()! + } + + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public func keys(request: RequestInfo? = nil, options: CacheQueryOptions? = nil) async throws -> [Request] { + let this = jsObject + let _promise: JSPromise = this[Strings.keys].function!(this: this, arguments: [request?.jsValue ?? .undefined, options?.jsValue ?? .undefined]).fromJSValue()! + return try await _promise.value.fromJSValue()! + } +} + +public class CacheQueryOptions: BridgedDictionary { + public convenience init(ignoreSearch: Bool, ignoreMethod: Bool, ignoreVary: Bool) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.ignoreSearch] = ignoreSearch.jsValue + object[Strings.ignoreMethod] = ignoreMethod.jsValue + object[Strings.ignoreVary] = ignoreVary.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _ignoreSearch = ReadWriteAttribute(jsObject: object, name: Strings.ignoreSearch) + _ignoreMethod = ReadWriteAttribute(jsObject: object, name: Strings.ignoreMethod) + _ignoreVary = ReadWriteAttribute(jsObject: object, name: Strings.ignoreVary) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var ignoreSearch: Bool + + @ReadWriteAttribute + public var ignoreMethod: Bool + + @ReadWriteAttribute + public var ignoreVary: Bool +} + +public class CacheStorage: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.CacheStorage].function! } + + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { + self.jsObject = jsObject + } + + @inlinable public func match(request: RequestInfo, options: MultiCacheQueryOptions? = nil) -> JSPromise { + let this = jsObject + return this[Strings.match].function!(this: this, arguments: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()! + } + + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public func match(request: RequestInfo, options: MultiCacheQueryOptions? = nil) async throws -> Response? { + let this = jsObject + let _promise: JSPromise = this[Strings.match].function!(this: this, arguments: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + + @inlinable public func has(cacheName: String) -> JSPromise { + let this = jsObject + return this[Strings.has].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()! + } + + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public func has(cacheName: String) async throws -> Bool { + let this = jsObject + let _promise: JSPromise = this[Strings.has].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + + @inlinable public func open(cacheName: String) -> JSPromise { + let this = jsObject + return this[Strings.open].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()! + } + + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public func open(cacheName: String) async throws -> Cache { + let this = jsObject + let _promise: JSPromise = this[Strings.open].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + + @inlinable public func delete(cacheName: String) -> JSPromise { + let this = jsObject + return this[Strings.delete].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()! + } + + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public func delete(cacheName: String) async throws -> Bool { + let this = jsObject + let _promise: JSPromise = this[Strings.delete].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + + @inlinable public func keys() -> JSPromise { + let this = jsObject + return this[Strings.keys].function!(this: this, arguments: []).fromJSValue()! + } + + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public func keys() async throws -> [String] { + let this = jsObject + let _promise: JSPromise = this[Strings.keys].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } +} + +public class CameraDevicePermissionDescriptor: BridgedDictionary { + public convenience init(panTiltZoom: Bool) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.panTiltZoom] = panTiltZoom.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _panTiltZoom = ReadWriteAttribute(jsObject: object, name: Strings.panTiltZoom) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var panTiltZoom: Bool +} + +public enum CanPlayTypeResult: JSString, JSValueCompatible { + case _empty = "" + case maybe = "maybe" + case probably = "probably" + + @inlinable public static func construct(from jsValue: JSValue) -> Self? { + if let string = jsValue.jsString { + return Self(rawValue: string) + } + return nil + } + + @inlinable public init?(string: String) { + self.init(rawValue: JSString(string)) + } + + @inlinable public var jsValue: JSValue { rawValue.jsValue } +} + +public protocol CanvasCompositing: JSBridgedClass {} +public extension CanvasCompositing { @inlinable var globalAlpha: Double { get { ReadWriteAttribute[Strings.globalAlpha, in: jsObject] } nonmutating set { ReadWriteAttribute[Strings.globalAlpha, in: jsObject] = newValue } @@ -2006,6 +3075,99 @@ public extension CanvasUserInterface { } } +public enum ChannelCountMode: JSString, JSValueCompatible { + case max = "max" + case clampedMax = "clamped-max" + case explicit = "explicit" + + @inlinable public static func construct(from jsValue: JSValue) -> Self? { + if let string = jsValue.jsString { + return Self(rawValue: string) + } + return nil + } + + @inlinable public init?(string: String) { + self.init(rawValue: JSString(string)) + } + + @inlinable public var jsValue: JSValue { rawValue.jsValue } +} + +public enum ChannelInterpretation: JSString, JSValueCompatible { + case speakers = "speakers" + case discrete = "discrete" + + @inlinable public static func construct(from jsValue: JSValue) -> Self? { + if let string = jsValue.jsString { + return Self(rawValue: string) + } + return nil + } + + @inlinable public init?(string: String) { + self.init(rawValue: JSString(string)) + } + + @inlinable public var jsValue: JSValue { rawValue.jsValue } +} + +public class ChannelMergerNode: AudioNode { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.ChannelMergerNode].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(context: BaseAudioContext, options: ChannelMergerOptions? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [context.jsValue, options?.jsValue ?? .undefined])) + } +} + +public class ChannelMergerOptions: BridgedDictionary { + public convenience init(numberOfInputs: UInt32) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.numberOfInputs] = numberOfInputs.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _numberOfInputs = ReadWriteAttribute(jsObject: object, name: Strings.numberOfInputs) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var numberOfInputs: UInt32 +} + +public class ChannelSplitterNode: AudioNode { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.ChannelSplitterNode].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(context: BaseAudioContext, options: ChannelSplitterOptions? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [context.jsValue, options?.jsValue ?? .undefined])) + } +} + +public class ChannelSplitterOptions: BridgedDictionary { + public convenience init(numberOfOutputs: UInt32) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.numberOfOutputs] = numberOfOutputs.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _numberOfOutputs = ReadWriteAttribute(jsObject: object, name: Strings.numberOfOutputs) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var numberOfOutputs: UInt32 +} + public class CharacterData: Node, NonDocumentTypeChildNode, ChildNode { @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.CharacterData].function! } @@ -2238,6 +3400,38 @@ public class ComputedEffectTiming: BridgedDictionary { public var currentIteration: Double? } +public class ConstantSourceNode: AudioScheduledSourceNode { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.ConstantSourceNode].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _offset = ReadonlyAttribute(jsObject: jsObject, name: Strings.offset) + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(context: BaseAudioContext, options: ConstantSourceOptions? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [context.jsValue, options?.jsValue ?? .undefined])) + } + + @ReadonlyAttribute + public var offset: AudioParam +} + +public class ConstantSourceOptions: BridgedDictionary { + public convenience init(offset: Float) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.offset] = offset.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _offset = ReadWriteAttribute(jsObject: object, name: Strings.offset) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var offset: Float +} + public class ConstrainBooleanParameters: BridgedDictionary { public convenience init(exact: Bool, ideal: Bool) { let object = JSObject.global[Strings.Object].function!.new() @@ -2322,6 +3516,47 @@ public class ConstrainULongRange: BridgedDictionary { public var ideal: UInt32 } +public class ConvolverNode: AudioNode { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.ConvolverNode].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _buffer = ReadWriteAttribute(jsObject: jsObject, name: Strings.buffer) + _normalize = ReadWriteAttribute(jsObject: jsObject, name: Strings.normalize) + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(context: BaseAudioContext, options: ConvolverOptions? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [context.jsValue, options?.jsValue ?? .undefined])) + } + + @ReadWriteAttribute + public var buffer: AudioBuffer? + + @ReadWriteAttribute + public var normalize: Bool +} + +public class ConvolverOptions: BridgedDictionary { + public convenience init(buffer: AudioBuffer?, disableNormalization: Bool) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.buffer] = buffer.jsValue + object[Strings.disableNormalization] = disableNormalization.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _buffer = ReadWriteAttribute(jsObject: object, name: Strings.buffer) + _disableNormalization = ReadWriteAttribute(jsObject: object, name: Strings.disableNormalization) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var buffer: AudioBuffer? + + @ReadWriteAttribute + public var disableNormalization: Bool +} + public class CountQueuingStrategy: JSBridgedClass { @inlinable public class var constructor: JSFunction { JSObject.global[Strings.CountQueuingStrategy].function! } @@ -3725,6 +4960,43 @@ public class DataTransferItemList: JSBridgedClass { } } +public class DelayNode: AudioNode { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.DelayNode].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _delayTime = ReadonlyAttribute(jsObject: jsObject, name: Strings.delayTime) + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(context: BaseAudioContext, options: DelayOptions? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [context.jsValue, options?.jsValue ?? .undefined])) + } + + @ReadonlyAttribute + public var delayTime: AudioParam +} + +public class DelayOptions: BridgedDictionary { + public convenience init(maxDelayTime: Double, delayTime: Double) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.maxDelayTime] = maxDelayTime.jsValue + object[Strings.delayTime] = delayTime.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _maxDelayTime = ReadWriteAttribute(jsObject: object, name: Strings.maxDelayTime) + _delayTime = ReadWriteAttribute(jsObject: object, name: Strings.delayTime) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var maxDelayTime: Double + + @ReadWriteAttribute + public var delayTime: Double +} + public class DevicePermissionDescriptor: BridgedDictionary { public convenience init(deviceId: String) { let object = JSObject.global[Strings.Object].function!.new() @@ -3741,6 +5013,25 @@ public class DevicePermissionDescriptor: BridgedDictionary { public var deviceId: String } +public enum DistanceModelType: JSString, JSValueCompatible { + case linear = "linear" + case inverse = "inverse" + case exponential = "exponential" + + @inlinable public static func construct(from jsValue: JSValue) -> Self? { + if let string = jsValue.jsString { + return Self(rawValue: string) + } + return nil + } + + @inlinable public init?(string: String) { + self.init(rawValue: JSString(string)) + } + + @inlinable public var jsValue: JSValue { rawValue.jsValue } +} + public class Document: Node, NonElementParentNode, DocumentOrShadowRoot, ParentNode, XPathEvaluatorBase, GlobalEventHandlers, DocumentAndElementEventHandlers { @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.Document].function! } @@ -4267,6 +5558,78 @@ public class DragEventInit: BridgedDictionary { public var dataTransfer: DataTransfer? } +public class DynamicsCompressorNode: AudioNode { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.DynamicsCompressorNode].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _threshold = ReadonlyAttribute(jsObject: jsObject, name: Strings.threshold) + _knee = ReadonlyAttribute(jsObject: jsObject, name: Strings.knee) + _ratio = ReadonlyAttribute(jsObject: jsObject, name: Strings.ratio) + _reduction = ReadonlyAttribute(jsObject: jsObject, name: Strings.reduction) + _attack = ReadonlyAttribute(jsObject: jsObject, name: Strings.attack) + _release = ReadonlyAttribute(jsObject: jsObject, name: Strings.release) + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(context: BaseAudioContext, options: DynamicsCompressorOptions? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [context.jsValue, options?.jsValue ?? .undefined])) + } + + @ReadonlyAttribute + public var threshold: AudioParam + + @ReadonlyAttribute + public var knee: AudioParam + + @ReadonlyAttribute + public var ratio: AudioParam + + @ReadonlyAttribute + public var reduction: Float + + @ReadonlyAttribute + public var attack: AudioParam + + @ReadonlyAttribute + public var release: AudioParam +} + +public class DynamicsCompressorOptions: BridgedDictionary { + public convenience init(attack: Float, knee: Float, ratio: Float, release: Float, threshold: Float) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.attack] = attack.jsValue + object[Strings.knee] = knee.jsValue + object[Strings.ratio] = ratio.jsValue + object[Strings.release] = release.jsValue + object[Strings.threshold] = threshold.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _attack = ReadWriteAttribute(jsObject: object, name: Strings.attack) + _knee = ReadWriteAttribute(jsObject: object, name: Strings.knee) + _ratio = ReadWriteAttribute(jsObject: object, name: Strings.ratio) + _release = ReadWriteAttribute(jsObject: object, name: Strings.release) + _threshold = ReadWriteAttribute(jsObject: object, name: Strings.threshold) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var attack: Float + + @ReadWriteAttribute + public var knee: Float + + @ReadWriteAttribute + public var ratio: Float + + @ReadWriteAttribute + public var release: Float + + @ReadWriteAttribute + public var threshold: Float +} + public class EffectTiming: BridgedDictionary { public convenience init(delay: Double, endDelay: Double, fill: FillMode, iterationStart: Double, iterations: Double, direction: PlaybackDirection, easing: String) { let object = JSObject.global[Strings.Object].function!.new() @@ -5372,6 +6735,38 @@ public enum FrameType: JSString, JSValueCompatible { @inlinable public var jsValue: JSValue { rawValue.jsValue } } +public class GainNode: AudioNode { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.GainNode].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _gain = ReadonlyAttribute(jsObject: jsObject, name: Strings.gain) + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(context: BaseAudioContext, options: GainOptions? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [context.jsValue, options?.jsValue ?? .undefined])) + } + + @ReadonlyAttribute + public var gain: AudioParam +} + +public class GainOptions: BridgedDictionary { + public convenience init(gain: Float) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.gain] = gain.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _gain = ReadWriteAttribute(jsObject: object, name: Strings.gain) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var gain: Float +} + public protocol GenericTransformStream: JSBridgedClass {} public extension GenericTransformStream { @inlinable var readable: ReadableStream { ReadonlyAttribute[Strings.readable, in: jsObject] } @@ -9256,6 +10651,44 @@ public class History: JSBridgedClass { } } +public class IIRFilterNode: AudioNode { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.IIRFilterNode].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(context: BaseAudioContext, options: IIRFilterOptions) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [context.jsValue, options.jsValue])) + } + + @inlinable public func getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array) { + let this = jsObject + _ = this[Strings.getFrequencyResponse].function!(this: this, arguments: [frequencyHz.jsValue, magResponse.jsValue, phaseResponse.jsValue]) + } +} + +public class IIRFilterOptions: BridgedDictionary { + public convenience init(feedforward: [Double], feedback: [Double]) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.feedforward] = feedforward.jsValue + object[Strings.feedback] = feedback.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _feedforward = ReadWriteAttribute(jsObject: object, name: Strings.feedforward) + _feedback = ReadWriteAttribute(jsObject: object, name: Strings.feedback) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var feedforward: [Double] + + @ReadWriteAttribute + public var feedback: [Double] +} + public class ImageBitmap: JSBridgedClass { @inlinable public class var constructor: JSFunction { JSObject.global[Strings.ImageBitmap].function! } @@ -9892,6 +11325,38 @@ public class MediaDevices: EventTarget { } } +public class MediaElementAudioSourceNode: AudioNode { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.MediaElementAudioSourceNode].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _mediaElement = ReadonlyAttribute(jsObject: jsObject, name: Strings.mediaElement) + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(context: AudioContext, options: MediaElementAudioSourceOptions) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [context.jsValue, options.jsValue])) + } + + @ReadonlyAttribute + public var mediaElement: HTMLMediaElement +} + +public class MediaElementAudioSourceOptions: BridgedDictionary { + public convenience init(mediaElement: HTMLMediaElement) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.mediaElement] = mediaElement.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _mediaElement = ReadWriteAttribute(jsObject: object, name: Strings.mediaElement) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var mediaElement: HTMLMediaElement +} + public class MediaError: JSBridgedClass { @inlinable public class var constructor: JSFunction { JSObject.global[Strings.MediaError].function! } @@ -9989,6 +11454,54 @@ public class MediaStream: EventTarget { public var onremovetrack: EventHandler } +public class MediaStreamAudioDestinationNode: AudioNode { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.MediaStreamAudioDestinationNode].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _stream = ReadonlyAttribute(jsObject: jsObject, name: Strings.stream) + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(context: AudioContext, options: AudioNodeOptions? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [context.jsValue, options?.jsValue ?? .undefined])) + } + + @ReadonlyAttribute + public var stream: MediaStream +} + +public class MediaStreamAudioSourceNode: AudioNode { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.MediaStreamAudioSourceNode].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _mediaStream = ReadonlyAttribute(jsObject: jsObject, name: Strings.mediaStream) + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(context: AudioContext, options: MediaStreamAudioSourceOptions) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [context.jsValue, options.jsValue])) + } + + @ReadonlyAttribute + public var mediaStream: MediaStream +} + +public class MediaStreamAudioSourceOptions: BridgedDictionary { + public convenience init(mediaStream: MediaStream) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.mediaStream] = mediaStream.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _mediaStream = ReadWriteAttribute(jsObject: object, name: Strings.mediaStream) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var mediaStream: MediaStream +} + public class MediaStreamConstraints: BridgedDictionary { public convenience init(video: Bool_or_MediaTrackConstraints, audio: Bool_or_MediaTrackConstraints) { let object = JSObject.global[Strings.Object].function!.new() @@ -10091,6 +11604,34 @@ public class MediaStreamTrack: EventTarget { } } +public class MediaStreamTrackAudioSourceNode: AudioNode { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.MediaStreamTrackAudioSourceNode].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(context: AudioContext, options: MediaStreamTrackAudioSourceOptions) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [context.jsValue, options.jsValue])) + } +} + +public class MediaStreamTrackAudioSourceOptions: BridgedDictionary { + public convenience init(mediaStreamTrack: MediaStreamTrack) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.mediaStreamTrack] = mediaStreamTrack.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _mediaStreamTrack = ReadWriteAttribute(jsObject: object, name: Strings.mediaStreamTrack) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var mediaStreamTrack: MediaStreamTrack +} + public class MediaStreamTrackEvent: Event { @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.MediaStreamTrackEvent].function! } @@ -11432,48 +12973,166 @@ public class NodeIterator: JSBridgedClass { return this[Strings.previousNode].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func detach() { + @inlinable public func detach() { + let this = jsObject + _ = this[Strings.detach].function!(this: this, arguments: []) + } +} + +public class NodeList: JSBridgedClass, Sequence { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.NodeList].function! } + + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { + _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) + self.jsObject = jsObject + } + + @inlinable public subscript(key: Int) -> Node? { + jsObject[key].fromJSValue() + } + + @ReadonlyAttribute + public var length: UInt32 + + public typealias Element = Node + public func makeIterator() -> ValueIterableIterator { + ValueIterableIterator(sequence: self) + } +} + +public protocol NonDocumentTypeChildNode: JSBridgedClass {} +public extension NonDocumentTypeChildNode { + @inlinable var previousElementSibling: Element? { ReadonlyAttribute[Strings.previousElementSibling, in: jsObject] } + + @inlinable var nextElementSibling: Element? { ReadonlyAttribute[Strings.nextElementSibling, in: jsObject] } +} + +public protocol NonElementParentNode: JSBridgedClass {} +public extension NonElementParentNode { + @inlinable func getElementById(elementId: String) -> Element? { + let this = jsObject + return this[Strings.getElementById].function!(this: this, arguments: [elementId.jsValue]).fromJSValue()! + } +} + +public class OfflineAudioCompletionEvent: Event { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.OfflineAudioCompletionEvent].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _renderedBuffer = ReadonlyAttribute(jsObject: jsObject, name: Strings.renderedBuffer) + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(type: String, eventInitDict: OfflineAudioCompletionEventInit) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [type.jsValue, eventInitDict.jsValue])) + } + + @ReadonlyAttribute + public var renderedBuffer: AudioBuffer +} + +public class OfflineAudioCompletionEventInit: BridgedDictionary { + public convenience init(renderedBuffer: AudioBuffer) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.renderedBuffer] = renderedBuffer.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _renderedBuffer = ReadWriteAttribute(jsObject: object, name: Strings.renderedBuffer) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var renderedBuffer: AudioBuffer +} + +public class OfflineAudioContext: BaseAudioContext { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.OfflineAudioContext].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) + _oncomplete = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.oncomplete) + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(contextOptions: OfflineAudioContextOptions) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [contextOptions.jsValue])) + } + + @inlinable public convenience init(numberOfChannels: UInt32, length: UInt32, sampleRate: Float) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [numberOfChannels.jsValue, length.jsValue, sampleRate.jsValue])) + } + + @inlinable public func startRendering() -> JSPromise { + let this = jsObject + return this[Strings.startRendering].function!(this: this, arguments: []).fromJSValue()! + } + + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public func startRendering() async throws -> AudioBuffer { + let this = jsObject + let _promise: JSPromise = this[Strings.startRendering].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + + @inlinable public func resume() -> JSPromise { let this = jsObject - _ = this[Strings.detach].function!(this: this, arguments: []) + return this[Strings.resume].function!(this: this, arguments: []).fromJSValue()! } -} - -public class NodeList: JSBridgedClass, Sequence { - @inlinable public class var constructor: JSFunction { JSObject.global[Strings.NodeList].function! } - public let jsObject: JSObject + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public func resume() async throws { + let this = jsObject + let _promise: JSPromise = this[Strings.resume].function!(this: this, arguments: []).fromJSValue()! + _ = try await _promise.value + } - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - self.jsObject = jsObject + @inlinable public func suspend(suspendTime: Double) -> JSPromise { + let this = jsObject + return this[Strings.suspend].function!(this: this, arguments: [suspendTime.jsValue]).fromJSValue()! } - @inlinable public subscript(key: Int) -> Node? { - jsObject[key].fromJSValue() + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public func suspend(suspendTime: Double) async throws { + let this = jsObject + let _promise: JSPromise = this[Strings.suspend].function!(this: this, arguments: [suspendTime.jsValue]).fromJSValue()! + _ = try await _promise.value } @ReadonlyAttribute public var length: UInt32 - public typealias Element = Node - public func makeIterator() -> ValueIterableIterator { - ValueIterableIterator(sequence: self) - } + @ClosureAttribute1Optional + public var oncomplete: EventHandler } -public protocol NonDocumentTypeChildNode: JSBridgedClass {} -public extension NonDocumentTypeChildNode { - @inlinable var previousElementSibling: Element? { ReadonlyAttribute[Strings.previousElementSibling, in: jsObject] } - - @inlinable var nextElementSibling: Element? { ReadonlyAttribute[Strings.nextElementSibling, in: jsObject] } -} +public class OfflineAudioContextOptions: BridgedDictionary { + public convenience init(numberOfChannels: UInt32, length: UInt32, sampleRate: Float) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.numberOfChannels] = numberOfChannels.jsValue + object[Strings.length] = length.jsValue + object[Strings.sampleRate] = sampleRate.jsValue + self.init(unsafelyWrapping: object) + } -public protocol NonElementParentNode: JSBridgedClass {} -public extension NonElementParentNode { - @inlinable func getElementById(elementId: String) -> Element? { - let this = jsObject - return this[Strings.getElementById].function!(this: this, arguments: [elementId.jsValue]).fromJSValue()! + public required init(unsafelyWrapping object: JSObject) { + _numberOfChannels = ReadWriteAttribute(jsObject: object, name: Strings.numberOfChannels) + _length = ReadWriteAttribute(jsObject: object, name: Strings.length) + _sampleRate = ReadWriteAttribute(jsObject: object, name: Strings.sampleRate) + super.init(unsafelyWrapping: object) } + + @ReadWriteAttribute + public var numberOfChannels: UInt32 + + @ReadWriteAttribute + public var length: UInt32 + + @ReadWriteAttribute + public var sampleRate: Float } public class OffscreenCanvas: EventTarget { @@ -11559,110 +13218,387 @@ public enum OffscreenRenderingContextId: JSString, JSValueCompatible { return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) + @inlinable public init?(string: String) { + self.init(rawValue: JSString(string)) + } + + @inlinable public var jsValue: JSValue { rawValue.jsValue } +} + +public class OptionalEffectTiming: BridgedDictionary { + public convenience init(delay: Double, endDelay: Double, fill: FillMode, iterationStart: Double, iterations: Double, duration: Double_or_String, direction: PlaybackDirection, easing: String) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.delay] = delay.jsValue + object[Strings.endDelay] = endDelay.jsValue + object[Strings.fill] = fill.jsValue + object[Strings.iterationStart] = iterationStart.jsValue + object[Strings.iterations] = iterations.jsValue + object[Strings.duration] = duration.jsValue + object[Strings.direction] = direction.jsValue + object[Strings.easing] = easing.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _delay = ReadWriteAttribute(jsObject: object, name: Strings.delay) + _endDelay = ReadWriteAttribute(jsObject: object, name: Strings.endDelay) + _fill = ReadWriteAttribute(jsObject: object, name: Strings.fill) + _iterationStart = ReadWriteAttribute(jsObject: object, name: Strings.iterationStart) + _iterations = ReadWriteAttribute(jsObject: object, name: Strings.iterations) + _duration = ReadWriteAttribute(jsObject: object, name: Strings.duration) + _direction = ReadWriteAttribute(jsObject: object, name: Strings.direction) + _easing = ReadWriteAttribute(jsObject: object, name: Strings.easing) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var delay: Double + + @ReadWriteAttribute + public var endDelay: Double + + @ReadWriteAttribute + public var fill: FillMode + + @ReadWriteAttribute + public var iterationStart: Double + + @ReadWriteAttribute + public var iterations: Double + + @ReadWriteAttribute + public var duration: Double_or_String + + @ReadWriteAttribute + public var direction: PlaybackDirection + + @ReadWriteAttribute + public var easing: String +} + +public class OscillatorNode: AudioScheduledSourceNode { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.OscillatorNode].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _type = ReadWriteAttribute(jsObject: jsObject, name: Strings.type) + _frequency = ReadonlyAttribute(jsObject: jsObject, name: Strings.frequency) + _detune = ReadonlyAttribute(jsObject: jsObject, name: Strings.detune) + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(context: BaseAudioContext, options: OscillatorOptions? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [context.jsValue, options?.jsValue ?? .undefined])) + } + + @ReadWriteAttribute + public var type: OscillatorType + + @ReadonlyAttribute + public var frequency: AudioParam + + @ReadonlyAttribute + public var detune: AudioParam + + @inlinable public func setPeriodicWave(periodicWave: PeriodicWave) { + let this = jsObject + _ = this[Strings.setPeriodicWave].function!(this: this, arguments: [periodicWave.jsValue]) + } +} + +public class OscillatorOptions: BridgedDictionary { + public convenience init(type: OscillatorType, frequency: Float, detune: Float, periodicWave: PeriodicWave) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.type] = type.jsValue + object[Strings.frequency] = frequency.jsValue + object[Strings.detune] = detune.jsValue + object[Strings.periodicWave] = periodicWave.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _type = ReadWriteAttribute(jsObject: object, name: Strings.type) + _frequency = ReadWriteAttribute(jsObject: object, name: Strings.frequency) + _detune = ReadWriteAttribute(jsObject: object, name: Strings.detune) + _periodicWave = ReadWriteAttribute(jsObject: object, name: Strings.periodicWave) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var type: OscillatorType + + @ReadWriteAttribute + public var frequency: Float + + @ReadWriteAttribute + public var detune: Float + + @ReadWriteAttribute + public var periodicWave: PeriodicWave +} + +public enum OscillatorType: JSString, JSValueCompatible { + case sine = "sine" + case square = "square" + case sawtooth = "sawtooth" + case triangle = "triangle" + case custom = "custom" + + @inlinable public static func construct(from jsValue: JSValue) -> Self? { + if let string = jsValue.jsString { + return Self(rawValue: string) + } + return nil + } + + @inlinable public init?(string: String) { + self.init(rawValue: JSString(string)) + } + + @inlinable public var jsValue: JSValue { rawValue.jsValue } +} + +public enum OverSampleType: JSString, JSValueCompatible { + case none = "none" + case _2x = "2x" + case _4x = "4x" + + @inlinable public static func construct(from jsValue: JSValue) -> Self? { + if let string = jsValue.jsString { + return Self(rawValue: string) + } + return nil + } + + @inlinable public init?(string: String) { + self.init(rawValue: JSString(string)) + } + + @inlinable public var jsValue: JSValue { rawValue.jsValue } +} + +public class OverconstrainedError: DOMException { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.OverconstrainedError].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _constraint = ReadonlyAttribute(jsObject: jsObject, name: Strings.constraint) + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(constraint: String, message: String? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [constraint.jsValue, message?.jsValue ?? .undefined])) + } + + @ReadonlyAttribute + public var constraint: String +} + +public class PageTransitionEvent: Event { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.PageTransitionEvent].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _persisted = ReadonlyAttribute(jsObject: jsObject, name: Strings.persisted) + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(type: String, eventInitDict: PageTransitionEventInit? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined])) + } + + @ReadonlyAttribute + public var persisted: Bool +} + +public class PageTransitionEventInit: BridgedDictionary { + public convenience init(persisted: Bool) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.persisted] = persisted.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _persisted = ReadWriteAttribute(jsObject: object, name: Strings.persisted) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var persisted: Bool +} + +public class PannerNode: AudioNode { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.PannerNode].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _panningModel = ReadWriteAttribute(jsObject: jsObject, name: Strings.panningModel) + _positionX = ReadonlyAttribute(jsObject: jsObject, name: Strings.positionX) + _positionY = ReadonlyAttribute(jsObject: jsObject, name: Strings.positionY) + _positionZ = ReadonlyAttribute(jsObject: jsObject, name: Strings.positionZ) + _orientationX = ReadonlyAttribute(jsObject: jsObject, name: Strings.orientationX) + _orientationY = ReadonlyAttribute(jsObject: jsObject, name: Strings.orientationY) + _orientationZ = ReadonlyAttribute(jsObject: jsObject, name: Strings.orientationZ) + _distanceModel = ReadWriteAttribute(jsObject: jsObject, name: Strings.distanceModel) + _refDistance = ReadWriteAttribute(jsObject: jsObject, name: Strings.refDistance) + _maxDistance = ReadWriteAttribute(jsObject: jsObject, name: Strings.maxDistance) + _rolloffFactor = ReadWriteAttribute(jsObject: jsObject, name: Strings.rolloffFactor) + _coneInnerAngle = ReadWriteAttribute(jsObject: jsObject, name: Strings.coneInnerAngle) + _coneOuterAngle = ReadWriteAttribute(jsObject: jsObject, name: Strings.coneOuterAngle) + _coneOuterGain = ReadWriteAttribute(jsObject: jsObject, name: Strings.coneOuterGain) + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(context: BaseAudioContext, options: PannerOptions? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [context.jsValue, options?.jsValue ?? .undefined])) + } + + @ReadWriteAttribute + public var panningModel: PanningModelType + + @ReadonlyAttribute + public var positionX: AudioParam + + @ReadonlyAttribute + public var positionY: AudioParam + + @ReadonlyAttribute + public var positionZ: AudioParam + + @ReadonlyAttribute + public var orientationX: AudioParam + + @ReadonlyAttribute + public var orientationY: AudioParam + + @ReadonlyAttribute + public var orientationZ: AudioParam + + @ReadWriteAttribute + public var distanceModel: DistanceModelType + + @ReadWriteAttribute + public var refDistance: Double + + @ReadWriteAttribute + public var maxDistance: Double + + @ReadWriteAttribute + public var rolloffFactor: Double + + @ReadWriteAttribute + public var coneInnerAngle: Double + + @ReadWriteAttribute + public var coneOuterAngle: Double + + @ReadWriteAttribute + public var coneOuterGain: Double + + @inlinable public func setPosition(x: Float, y: Float, z: Float) { + let this = jsObject + _ = this[Strings.setPosition].function!(this: this, arguments: [x.jsValue, y.jsValue, z.jsValue]) } - @inlinable public var jsValue: JSValue { rawValue.jsValue } + @inlinable public func setOrientation(x: Float, y: Float, z: Float) { + let this = jsObject + _ = this[Strings.setOrientation].function!(this: this, arguments: [x.jsValue, y.jsValue, z.jsValue]) + } } -public class OptionalEffectTiming: BridgedDictionary { - public convenience init(delay: Double, endDelay: Double, fill: FillMode, iterationStart: Double, iterations: Double, duration: Double_or_String, direction: PlaybackDirection, easing: String) { +public class PannerOptions: BridgedDictionary { + public convenience init(panningModel: PanningModelType, distanceModel: DistanceModelType, positionX: Float, positionY: Float, positionZ: Float, orientationX: Float, orientationY: Float, orientationZ: Float, refDistance: Double, maxDistance: Double, rolloffFactor: Double, coneInnerAngle: Double, coneOuterAngle: Double, coneOuterGain: Double) { let object = JSObject.global[Strings.Object].function!.new() - object[Strings.delay] = delay.jsValue - object[Strings.endDelay] = endDelay.jsValue - object[Strings.fill] = fill.jsValue - object[Strings.iterationStart] = iterationStart.jsValue - object[Strings.iterations] = iterations.jsValue - object[Strings.duration] = duration.jsValue - object[Strings.direction] = direction.jsValue - object[Strings.easing] = easing.jsValue + object[Strings.panningModel] = panningModel.jsValue + object[Strings.distanceModel] = distanceModel.jsValue + object[Strings.positionX] = positionX.jsValue + object[Strings.positionY] = positionY.jsValue + object[Strings.positionZ] = positionZ.jsValue + object[Strings.orientationX] = orientationX.jsValue + object[Strings.orientationY] = orientationY.jsValue + object[Strings.orientationZ] = orientationZ.jsValue + object[Strings.refDistance] = refDistance.jsValue + object[Strings.maxDistance] = maxDistance.jsValue + object[Strings.rolloffFactor] = rolloffFactor.jsValue + object[Strings.coneInnerAngle] = coneInnerAngle.jsValue + object[Strings.coneOuterAngle] = coneOuterAngle.jsValue + object[Strings.coneOuterGain] = coneOuterGain.jsValue self.init(unsafelyWrapping: object) } public required init(unsafelyWrapping object: JSObject) { - _delay = ReadWriteAttribute(jsObject: object, name: Strings.delay) - _endDelay = ReadWriteAttribute(jsObject: object, name: Strings.endDelay) - _fill = ReadWriteAttribute(jsObject: object, name: Strings.fill) - _iterationStart = ReadWriteAttribute(jsObject: object, name: Strings.iterationStart) - _iterations = ReadWriteAttribute(jsObject: object, name: Strings.iterations) - _duration = ReadWriteAttribute(jsObject: object, name: Strings.duration) - _direction = ReadWriteAttribute(jsObject: object, name: Strings.direction) - _easing = ReadWriteAttribute(jsObject: object, name: Strings.easing) + _panningModel = ReadWriteAttribute(jsObject: object, name: Strings.panningModel) + _distanceModel = ReadWriteAttribute(jsObject: object, name: Strings.distanceModel) + _positionX = ReadWriteAttribute(jsObject: object, name: Strings.positionX) + _positionY = ReadWriteAttribute(jsObject: object, name: Strings.positionY) + _positionZ = ReadWriteAttribute(jsObject: object, name: Strings.positionZ) + _orientationX = ReadWriteAttribute(jsObject: object, name: Strings.orientationX) + _orientationY = ReadWriteAttribute(jsObject: object, name: Strings.orientationY) + _orientationZ = ReadWriteAttribute(jsObject: object, name: Strings.orientationZ) + _refDistance = ReadWriteAttribute(jsObject: object, name: Strings.refDistance) + _maxDistance = ReadWriteAttribute(jsObject: object, name: Strings.maxDistance) + _rolloffFactor = ReadWriteAttribute(jsObject: object, name: Strings.rolloffFactor) + _coneInnerAngle = ReadWriteAttribute(jsObject: object, name: Strings.coneInnerAngle) + _coneOuterAngle = ReadWriteAttribute(jsObject: object, name: Strings.coneOuterAngle) + _coneOuterGain = ReadWriteAttribute(jsObject: object, name: Strings.coneOuterGain) super.init(unsafelyWrapping: object) } @ReadWriteAttribute - public var delay: Double + public var panningModel: PanningModelType @ReadWriteAttribute - public var endDelay: Double + public var distanceModel: DistanceModelType @ReadWriteAttribute - public var fill: FillMode + public var positionX: Float @ReadWriteAttribute - public var iterationStart: Double + public var positionY: Float @ReadWriteAttribute - public var iterations: Double + public var positionZ: Float @ReadWriteAttribute - public var duration: Double_or_String + public var orientationX: Float @ReadWriteAttribute - public var direction: PlaybackDirection + public var orientationY: Float @ReadWriteAttribute - public var easing: String -} - -public class OverconstrainedError: DOMException { - @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.OverconstrainedError].function! } + public var orientationZ: Float - public required init(unsafelyWrapping jsObject: JSObject) { - _constraint = ReadonlyAttribute(jsObject: jsObject, name: Strings.constraint) - super.init(unsafelyWrapping: jsObject) - } - - @inlinable public convenience init(constraint: String, message: String? = nil) { - self.init(unsafelyWrapping: Self.constructor.new(arguments: [constraint.jsValue, message?.jsValue ?? .undefined])) - } + @ReadWriteAttribute + public var refDistance: Double - @ReadonlyAttribute - public var constraint: String -} + @ReadWriteAttribute + public var maxDistance: Double -public class PageTransitionEvent: Event { - @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.PageTransitionEvent].function! } + @ReadWriteAttribute + public var rolloffFactor: Double - public required init(unsafelyWrapping jsObject: JSObject) { - _persisted = ReadonlyAttribute(jsObject: jsObject, name: Strings.persisted) - super.init(unsafelyWrapping: jsObject) - } + @ReadWriteAttribute + public var coneInnerAngle: Double - @inlinable public convenience init(type: String, eventInitDict: PageTransitionEventInit? = nil) { - self.init(unsafelyWrapping: Self.constructor.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined])) - } + @ReadWriteAttribute + public var coneOuterAngle: Double - @ReadonlyAttribute - public var persisted: Bool + @ReadWriteAttribute + public var coneOuterGain: Double } -public class PageTransitionEventInit: BridgedDictionary { - public convenience init(persisted: Bool) { - let object = JSObject.global[Strings.Object].function!.new() - object[Strings.persisted] = persisted.jsValue - self.init(unsafelyWrapping: object) +public enum PanningModelType: JSString, JSValueCompatible { + case equalpower = "equalpower" + case hRTF = "HRTF" + + @inlinable public static func construct(from jsValue: JSValue) -> Self? { + if let string = jsValue.jsString { + return Self(rawValue: string) + } + return nil } - public required init(unsafelyWrapping object: JSObject) { - _persisted = ReadWriteAttribute(jsObject: object, name: Strings.persisted) - super.init(unsafelyWrapping: object) + @inlinable public init?(string: String) { + self.init(rawValue: JSString(string)) } - @ReadWriteAttribute - public var persisted: Bool + @inlinable public var jsValue: JSValue { rawValue.jsValue } } public protocol ParentNode: JSBridgedClass {} @@ -11742,6 +13678,57 @@ public class Performance: EventTarget { } } +public class PeriodicWave: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.PeriodicWave].function! } + + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { + self.jsObject = jsObject + } + + @inlinable public convenience init(context: BaseAudioContext, options: PeriodicWaveOptions? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [context.jsValue, options?.jsValue ?? .undefined])) + } +} + +public class PeriodicWaveConstraints: BridgedDictionary { + public convenience init(disableNormalization: Bool) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.disableNormalization] = disableNormalization.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _disableNormalization = ReadWriteAttribute(jsObject: object, name: Strings.disableNormalization) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var disableNormalization: Bool +} + +public class PeriodicWaveOptions: BridgedDictionary { + public convenience init(real: [Float], imag: [Float]) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.real] = real.jsValue + object[Strings.imag] = imag.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _real = ReadWriteAttribute(jsObject: object, name: Strings.real) + _imag = ReadWriteAttribute(jsObject: object, name: Strings.imag) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var real: [Float] + + @ReadWriteAttribute + public var imag: [Float] +} + public enum PlaybackDirection: JSString, JSValueCompatible { case normal = "normal" case reverse = "reverse" @@ -12976,6 +14963,22 @@ public enum ResponseType: JSString, JSValueCompatible { @inlinable public var jsValue: JSValue { rawValue.jsValue } } +public class ScriptProcessorNode: AudioNode { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.ScriptProcessorNode].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _onaudioprocess = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onaudioprocess) + _bufferSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.bufferSize) + super.init(unsafelyWrapping: jsObject) + } + + @ClosureAttribute1Optional + public var onaudioprocess: EventHandler + + @ReadonlyAttribute + public var bufferSize: Int32 +} + public enum ScrollRestoration: JSString, JSValueCompatible { case auto = "auto" case manual = "manual" @@ -13368,6 +15371,38 @@ public class StaticRangeInit: BridgedDictionary { public var endOffset: UInt32 } +public class StereoPannerNode: AudioNode { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.StereoPannerNode].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _pan = ReadonlyAttribute(jsObject: jsObject, name: Strings.pan) + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(context: BaseAudioContext, options: StereoPannerOptions? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [context.jsValue, options?.jsValue ?? .undefined])) + } + + @ReadonlyAttribute + public var pan: AudioParam +} + +public class StereoPannerOptions: BridgedDictionary { + public convenience init(pan: Float) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.pan] = pan.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _pan = ReadWriteAttribute(jsObject: object, name: Strings.pan) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var pan: Float +} + public class Storage: JSBridgedClass { @inlinable public class var constructor: JSFunction { JSObject.global[Strings.Storage].function! } @@ -14079,6 +16114,9 @@ public typealias TransformerTransformCallback = (JSValue, TransformStreamDefault public typealias QueuingStrategySize = (JSValue) -> Double public typealias NavigatorUserMediaSuccessCallback = (MediaStream) -> Void public typealias NavigatorUserMediaErrorCallback = (DOMException) -> Void +public typealias DecodeErrorCallback = (DOMException) -> Void +public typealias DecodeSuccessCallback = (AudioBuffer) -> Void +public typealias AudioWorkletProcessCallback = ([[Float32Array]], [[Float32Array]], JSObject) -> Bool public class UIEvent: Event { @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.UIEvent].function! } @@ -14582,6 +16620,47 @@ public class VideoTrackList: EventTarget { public var onremovetrack: EventHandler } +public class WaveShaperNode: AudioNode { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.WaveShaperNode].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _curve = ReadWriteAttribute(jsObject: jsObject, name: Strings.curve) + _oversample = ReadWriteAttribute(jsObject: jsObject, name: Strings.oversample) + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(context: BaseAudioContext, options: WaveShaperOptions? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [context.jsValue, options?.jsValue ?? .undefined])) + } + + @ReadWriteAttribute + public var curve: Float32Array? + + @ReadWriteAttribute + public var oversample: OverSampleType +} + +public class WaveShaperOptions: BridgedDictionary { + public convenience init(curve: [Float], oversample: OverSampleType) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.curve] = curve.jsValue + object[Strings.oversample] = oversample.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _curve = ReadWriteAttribute(jsObject: object, name: Strings.curve) + _oversample = ReadWriteAttribute(jsObject: object, name: Strings.oversample) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var curve: [Float] + + @ReadWriteAttribute + public var oversample: OverSampleType +} + public class WheelEvent: MouseEvent { @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.WheelEvent].function! } @@ -16127,6 +18206,70 @@ public enum console { } } +@propertyWrapper public final class ClosureAttribute3 + where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible +{ + @usableFromInline let jsObject: JSObject + @usableFromInline let name: JSString + + public init(jsObject: JSObject, name: JSString) { + self.jsObject = jsObject + self.name = name + } + + @inlinable public var wrappedValue: (A0, A1, A2) -> ReturnType { + get { ClosureAttribute3[name, in: jsObject] } + set { ClosureAttribute3[name, in: jsObject] = newValue } + } + + @inlinable public static subscript(name: JSString, in jsObject: JSObject) -> (A0, A1, A2) -> ReturnType { + get { + let function = jsObject[name].function! + return { function($0.jsValue, $1.jsValue, $2.jsValue).fromJSValue()! } + } + set { + jsObject[name] = JSClosure { + newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!).jsValue + }.jsValue + } + } +} + +@propertyWrapper public final class ClosureAttribute3Optional + where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible +{ + @usableFromInline let jsObject: JSObject + @usableFromInline let name: JSString + + public init(jsObject: JSObject, name: JSString) { + self.jsObject = jsObject + self.name = name + } + + @inlinable public var wrappedValue: ((A0, A1, A2) -> ReturnType)? { + get { ClosureAttribute3Optional[name, in: jsObject] } + set { ClosureAttribute3Optional[name, in: jsObject] = newValue } + } + + @inlinable public static subscript(name: JSString, in jsObject: JSObject) -> ((A0, A1, A2) -> ReturnType)? { + get { + guard let function = jsObject[name].function else { + return nil + } + return { function($0.jsValue, $1.jsValue, $2.jsValue).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[name] = JSClosure { + newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!).jsValue + }.jsValue + } else { + jsObject[name] = .null + } + } + } +} + @propertyWrapper public final class ClosureAttribute5 where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible { @@ -16197,14 +18340,29 @@ public enum console { @usableFromInline static let AbortSignal: JSString = "AbortSignal" @usableFromInline static let AbstractRange: JSString = "AbstractRange" @usableFromInline static let AddSearchProvider: JSString = "AddSearchProvider" + @usableFromInline static let AnalyserNode: JSString = "AnalyserNode" @usableFromInline static let Animation: JSString = "Animation" @usableFromInline static let AnimationEffect: JSString = "AnimationEffect" @usableFromInline static let AnimationTimeline: JSString = "AnimationTimeline" @usableFromInline static let Attr: JSString = "Attr" + @usableFromInline static let AudioBuffer: JSString = "AudioBuffer" + @usableFromInline static let AudioBufferSourceNode: JSString = "AudioBufferSourceNode" + @usableFromInline static let AudioContext: JSString = "AudioContext" + @usableFromInline static let AudioDestinationNode: JSString = "AudioDestinationNode" + @usableFromInline static let AudioListener: JSString = "AudioListener" + @usableFromInline static let AudioNode: JSString = "AudioNode" + @usableFromInline static let AudioParam: JSString = "AudioParam" + @usableFromInline static let AudioParamMap: JSString = "AudioParamMap" + @usableFromInline static let AudioProcessingEvent: JSString = "AudioProcessingEvent" + @usableFromInline static let AudioScheduledSourceNode: JSString = "AudioScheduledSourceNode" @usableFromInline static let AudioTrack: JSString = "AudioTrack" @usableFromInline static let AudioTrackList: JSString = "AudioTrackList" + @usableFromInline static let AudioWorklet: JSString = "AudioWorklet" + @usableFromInline static let AudioWorkletNode: JSString = "AudioWorkletNode" @usableFromInline static let BarProp: JSString = "BarProp" + @usableFromInline static let BaseAudioContext: JSString = "BaseAudioContext" @usableFromInline static let BeforeUnloadEvent: JSString = "BeforeUnloadEvent" + @usableFromInline static let BiquadFilterNode: JSString = "BiquadFilterNode" @usableFromInline static let Blob: JSString = "Blob" @usableFromInline static let BroadcastChannel: JSString = "BroadcastChannel" @usableFromInline static let ByteLengthQueuingStrategy: JSString = "ByteLengthQueuingStrategy" @@ -16215,9 +18373,13 @@ public enum console { @usableFromInline static let CanvasGradient: JSString = "CanvasGradient" @usableFromInline static let CanvasPattern: JSString = "CanvasPattern" @usableFromInline static let CanvasRenderingContext2D: JSString = "CanvasRenderingContext2D" + @usableFromInline static let ChannelMergerNode: JSString = "ChannelMergerNode" + @usableFromInline static let ChannelSplitterNode: JSString = "ChannelSplitterNode" @usableFromInline static let CharacterData: JSString = "CharacterData" @usableFromInline static let Comment: JSString = "Comment" @usableFromInline static let CompositionEvent: JSString = "CompositionEvent" + @usableFromInline static let ConstantSourceNode: JSString = "ConstantSourceNode" + @usableFromInline static let ConvolverNode: JSString = "ConvolverNode" @usableFromInline static let CountQueuingStrategy: JSString = "CountQueuingStrategy" @usableFromInline static let CustomElementRegistry: JSString = "CustomElementRegistry" @usableFromInline static let CustomEvent: JSString = "CustomEvent" @@ -16238,11 +18400,13 @@ public enum console { @usableFromInline static let DataTransfer: JSString = "DataTransfer" @usableFromInline static let DataTransferItem: JSString = "DataTransferItem" @usableFromInline static let DataTransferItemList: JSString = "DataTransferItemList" + @usableFromInline static let DelayNode: JSString = "DelayNode" @usableFromInline static let Document: JSString = "Document" @usableFromInline static let DocumentFragment: JSString = "DocumentFragment" @usableFromInline static let DocumentTimeline: JSString = "DocumentTimeline" @usableFromInline static let DocumentType: JSString = "DocumentType" @usableFromInline static let DragEvent: JSString = "DragEvent" + @usableFromInline static let DynamicsCompressorNode: JSString = "DynamicsCompressorNode" @usableFromInline static let Element: JSString = "Element" @usableFromInline static let ElementInternals: JSString = "ElementInternals" @usableFromInline static let ErrorEvent: JSString = "ErrorEvent" @@ -16256,6 +18420,7 @@ public enum console { @usableFromInline static let FocusEvent: JSString = "FocusEvent" @usableFromInline static let FormData: JSString = "FormData" @usableFromInline static let FormDataEvent: JSString = "FormDataEvent" + @usableFromInline static let GainNode: JSString = "GainNode" @usableFromInline static let HTMLAllCollection: JSString = "HTMLAllCollection" @usableFromInline static let HTMLAnchorElement: JSString = "HTMLAnchorElement" @usableFromInline static let HTMLAreaElement: JSString = "HTMLAreaElement" @@ -16334,6 +18499,7 @@ public enum console { @usableFromInline static let HashChangeEvent: JSString = "HashChangeEvent" @usableFromInline static let Headers: JSString = "Headers" @usableFromInline static let History: JSString = "History" + @usableFromInline static let IIRFilterNode: JSString = "IIRFilterNode" @usableFromInline static let ImageBitmap: JSString = "ImageBitmap" @usableFromInline static let ImageBitmapRenderingContext: JSString = "ImageBitmapRenderingContext" @usableFromInline static let ImageData: JSString = "ImageData" @@ -16345,9 +18511,13 @@ public enum console { @usableFromInline static let Location: JSString = "Location" @usableFromInline static let MediaDeviceInfo: JSString = "MediaDeviceInfo" @usableFromInline static let MediaDevices: JSString = "MediaDevices" + @usableFromInline static let MediaElementAudioSourceNode: JSString = "MediaElementAudioSourceNode" @usableFromInline static let MediaError: JSString = "MediaError" @usableFromInline static let MediaStream: JSString = "MediaStream" + @usableFromInline static let MediaStreamAudioDestinationNode: JSString = "MediaStreamAudioDestinationNode" + @usableFromInline static let MediaStreamAudioSourceNode: JSString = "MediaStreamAudioSourceNode" @usableFromInline static let MediaStreamTrack: JSString = "MediaStreamTrack" + @usableFromInline static let MediaStreamTrackAudioSourceNode: JSString = "MediaStreamTrackAudioSourceNode" @usableFromInline static let MediaStreamTrackEvent: JSString = "MediaStreamTrackEvent" @usableFromInline static let MessageChannel: JSString = "MessageChannel" @usableFromInline static let MessageEvent: JSString = "MessageEvent" @@ -16365,18 +18535,24 @@ public enum console { @usableFromInline static let NodeIterator: JSString = "NodeIterator" @usableFromInline static let NodeList: JSString = "NodeList" @usableFromInline static let Object: JSString = "Object" + @usableFromInline static let OfflineAudioCompletionEvent: JSString = "OfflineAudioCompletionEvent" + @usableFromInline static let OfflineAudioContext: JSString = "OfflineAudioContext" @usableFromInline static let OffscreenCanvas: JSString = "OffscreenCanvas" @usableFromInline static let OffscreenCanvasRenderingContext2D: JSString = "OffscreenCanvasRenderingContext2D" + @usableFromInline static let OscillatorNode: JSString = "OscillatorNode" @usableFromInline static let OverconstrainedError: JSString = "OverconstrainedError" @usableFromInline static let PageTransitionEvent: JSString = "PageTransitionEvent" + @usableFromInline static let PannerNode: JSString = "PannerNode" @usableFromInline static let Path2D: JSString = "Path2D" @usableFromInline static let Performance: JSString = "Performance" + @usableFromInline static let PeriodicWave: JSString = "PeriodicWave" @usableFromInline static let Plugin: JSString = "Plugin" @usableFromInline static let PluginArray: JSString = "PluginArray" @usableFromInline static let PopStateEvent: JSString = "PopStateEvent" @usableFromInline static let ProcessingInstruction: JSString = "ProcessingInstruction" @usableFromInline static let ProgressEvent: JSString = "ProgressEvent" @usableFromInline static let PromiseRejectionEvent: JSString = "PromiseRejectionEvent" + @usableFromInline static let Q: JSString = "Q" @usableFromInline static let RadioNodeList: JSString = "RadioNodeList" @usableFromInline static let Range: JSString = "Range" @usableFromInline static let ReadableByteStreamController: JSString = "ReadableByteStreamController" @@ -16387,12 +18563,14 @@ public enum console { @usableFromInline static let ReadableStreamDefaultReader: JSString = "ReadableStreamDefaultReader" @usableFromInline static let Request: JSString = "Request" @usableFromInline static let Response: JSString = "Response" + @usableFromInline static let ScriptProcessorNode: JSString = "ScriptProcessorNode" @usableFromInline static let ServiceWorker: JSString = "ServiceWorker" @usableFromInline static let ServiceWorkerContainer: JSString = "ServiceWorkerContainer" @usableFromInline static let ServiceWorkerRegistration: JSString = "ServiceWorkerRegistration" @usableFromInline static let ShadowRoot: JSString = "ShadowRoot" @usableFromInline static let SharedWorker: JSString = "SharedWorker" @usableFromInline static let StaticRange: JSString = "StaticRange" + @usableFromInline static let StereoPannerNode: JSString = "StereoPannerNode" @usableFromInline static let Storage: JSString = "Storage" @usableFromInline static let StorageEvent: JSString = "StorageEvent" @usableFromInline static let SubmitEvent: JSString = "SubmitEvent" @@ -16413,6 +18591,7 @@ public enum console { @usableFromInline static let ValidityState: JSString = "ValidityState" @usableFromInline static let VideoTrack: JSString = "VideoTrack" @usableFromInline static let VideoTrackList: JSString = "VideoTrackList" + @usableFromInline static let WaveShaperNode: JSString = "WaveShaperNode" @usableFromInline static let WheelEvent: JSString = "WheelEvent" @usableFromInline static let Window: JSString = "Window" @usableFromInline static let Worker: JSString = "Worker" @@ -16534,6 +18713,7 @@ public enum console { @usableFromInline static let atob: JSString = "atob" @usableFromInline static let attachInternals: JSString = "attachInternals" @usableFromInline static let attachShadow: JSString = "attachShadow" + @usableFromInline static let attack: JSString = "attack" @usableFromInline static let attrChange: JSString = "attrChange" @usableFromInline static let attrName: JSString = "attrName" @usableFromInline static let attributeFilter: JSString = "attributeFilter" @@ -16543,17 +18723,20 @@ public enum console { @usableFromInline static let attributes: JSString = "attributes" @usableFromInline static let audio: JSString = "audio" @usableFromInline static let audioTracks: JSString = "audioTracks" + @usableFromInline static let audioWorklet: JSString = "audioWorklet" @usableFromInline static let autoAllocateChunkSize: JSString = "autoAllocateChunkSize" @usableFromInline static let autoGainControl: JSString = "autoGainControl" @usableFromInline static let autocapitalize: JSString = "autocapitalize" @usableFromInline static let autocomplete: JSString = "autocomplete" @usableFromInline static let autofocus: JSString = "autofocus" + @usableFromInline static let automationRate: JSString = "automationRate" @usableFromInline static let autoplay: JSString = "autoplay" @usableFromInline static let axis: JSString = "axis" @usableFromInline static let b: JSString = "b" @usableFromInline static let back: JSString = "back" @usableFromInline static let background: JSString = "background" @usableFromInline static let badInput: JSString = "badInput" + @usableFromInline static let baseLatency: JSString = "baseLatency" @usableFromInline static let baseURI: JSString = "baseURI" @usableFromInline static let before: JSString = "before" @usableFromInline static let beginPath: JSString = "beginPath" @@ -16570,6 +18753,8 @@ public enum console { @usableFromInline static let bottom: JSString = "bottom" @usableFromInline static let btoa: JSString = "btoa" @usableFromInline static let bubbles: JSString = "bubbles" + @usableFromInline static let buffer: JSString = "buffer" + @usableFromInline static let bufferSize: JSString = "bufferSize" @usableFromInline static let buffered: JSString = "buffered" @usableFromInline static let button: JSString = "button" @usableFromInline static let buttons: JSString = "buttons" @@ -16580,8 +18765,10 @@ public enum console { @usableFromInline static let caches: JSString = "caches" @usableFromInline static let canPlayType: JSString = "canPlayType" @usableFromInline static let cancel: JSString = "cancel" + @usableFromInline static let cancelAndHoldAtTime: JSString = "cancelAndHoldAtTime" @usableFromInline static let cancelAnimationFrame: JSString = "cancelAnimationFrame" @usableFromInline static let cancelBubble: JSString = "cancelBubble" + @usableFromInline static let cancelScheduledValues: JSString = "cancelScheduledValues" @usableFromInline static let cancelable: JSString = "cancelable" @usableFromInline static let canvas: JSString = "canvas" @usableFromInline static let caption: JSString = "caption" @@ -16594,6 +18781,8 @@ public enum console { @usableFromInline static let ch: JSString = "ch" @usableFromInline static let chOff: JSString = "chOff" @usableFromInline static let channelCount: JSString = "channelCount" + @usableFromInline static let channelCountMode: JSString = "channelCountMode" + @usableFromInline static let channelInterpretation: JSString = "channelInterpretation" @usableFromInline static let charCode: JSString = "charCode" @usableFromInline static let characterData: JSString = "characterData" @usableFromInline static let characterDataOldValue: JSString = "characterDataOldValue" @@ -16652,7 +18841,11 @@ public enum console { @usableFromInline static let composedPath: JSString = "composedPath" @usableFromInline static let composite: JSString = "composite" @usableFromInline static let computedOffset: JSString = "computedOffset" + @usableFromInline static let coneInnerAngle: JSString = "coneInnerAngle" + @usableFromInline static let coneOuterAngle: JSString = "coneOuterAngle" + @usableFromInline static let coneOuterGain: JSString = "coneOuterGain" @usableFromInline static let confirm: JSString = "confirm" + @usableFromInline static let connect: JSString = "connect" @usableFromInline static let console: JSString = "console" @usableFromInline static let constraint: JSString = "constraint" @usableFromInline static let contains: JSString = "contains" @@ -16661,6 +18854,8 @@ public enum console { @usableFromInline static let contentEditable: JSString = "contentEditable" @usableFromInline static let contentType: JSString = "contentType" @usableFromInline static let contentWindow: JSString = "contentWindow" + @usableFromInline static let context: JSString = "context" + @usableFromInline static let contextTime: JSString = "contextTime" @usableFromInline static let control: JSString = "control" @usableFromInline static let controller: JSString = "controller" @usableFromInline static let controls: JSString = "controls" @@ -16668,33 +18863,57 @@ public enum console { @usableFromInline static let cookie: JSString = "cookie" @usableFromInline static let cookieEnabled: JSString = "cookieEnabled" @usableFromInline static let coords: JSString = "coords" + @usableFromInline static let copyFromChannel: JSString = "copyFromChannel" + @usableFromInline static let copyToChannel: JSString = "copyToChannel" @usableFromInline static let count: JSString = "count" @usableFromInline static let countReset: JSString = "countReset" + @usableFromInline static let createAnalyser: JSString = "createAnalyser" @usableFromInline static let createAttribute: JSString = "createAttribute" @usableFromInline static let createAttributeNS: JSString = "createAttributeNS" + @usableFromInline static let createBiquadFilter: JSString = "createBiquadFilter" + @usableFromInline static let createBuffer: JSString = "createBuffer" + @usableFromInline static let createBufferSource: JSString = "createBufferSource" @usableFromInline static let createCDATASection: JSString = "createCDATASection" @usableFromInline static let createCaption: JSString = "createCaption" + @usableFromInline static let createChannelMerger: JSString = "createChannelMerger" + @usableFromInline static let createChannelSplitter: JSString = "createChannelSplitter" @usableFromInline static let createComment: JSString = "createComment" @usableFromInline static let createConicGradient: JSString = "createConicGradient" + @usableFromInline static let createConstantSource: JSString = "createConstantSource" + @usableFromInline static let createConvolver: JSString = "createConvolver" + @usableFromInline static let createDelay: JSString = "createDelay" @usableFromInline static let createDocument: JSString = "createDocument" @usableFromInline static let createDocumentFragment: JSString = "createDocumentFragment" @usableFromInline static let createDocumentType: JSString = "createDocumentType" + @usableFromInline static let createDynamicsCompressor: JSString = "createDynamicsCompressor" @usableFromInline static let createElement: JSString = "createElement" @usableFromInline static let createElementNS: JSString = "createElementNS" @usableFromInline static let createEvent: JSString = "createEvent" + @usableFromInline static let createGain: JSString = "createGain" @usableFromInline static let createHTMLDocument: JSString = "createHTMLDocument" + @usableFromInline static let createIIRFilter: JSString = "createIIRFilter" @usableFromInline static let createImageBitmap: JSString = "createImageBitmap" @usableFromInline static let createImageData: JSString = "createImageData" @usableFromInline static let createLinearGradient: JSString = "createLinearGradient" + @usableFromInline static let createMediaElementSource: JSString = "createMediaElementSource" + @usableFromInline static let createMediaStreamDestination: JSString = "createMediaStreamDestination" + @usableFromInline static let createMediaStreamSource: JSString = "createMediaStreamSource" + @usableFromInline static let createMediaStreamTrackSource: JSString = "createMediaStreamTrackSource" @usableFromInline static let createObjectURL: JSString = "createObjectURL" + @usableFromInline static let createOscillator: JSString = "createOscillator" + @usableFromInline static let createPanner: JSString = "createPanner" @usableFromInline static let createPattern: JSString = "createPattern" + @usableFromInline static let createPeriodicWave: JSString = "createPeriodicWave" @usableFromInline static let createProcessingInstruction: JSString = "createProcessingInstruction" @usableFromInline static let createRadialGradient: JSString = "createRadialGradient" @usableFromInline static let createRange: JSString = "createRange" + @usableFromInline static let createScriptProcessor: JSString = "createScriptProcessor" + @usableFromInline static let createStereoPanner: JSString = "createStereoPanner" @usableFromInline static let createTBody: JSString = "createTBody" @usableFromInline static let createTFoot: JSString = "createTFoot" @usableFromInline static let createTHead: JSString = "createTHead" @usableFromInline static let createTextNode: JSString = "createTextNode" + @usableFromInline static let createWaveShaper: JSString = "createWaveShaper" @usableFromInline static let credentials: JSString = "credentials" @usableFromInline static let crossOrigin: JSString = "crossOrigin" @usableFromInline static let crossOriginIsolated: JSString = "crossOriginIsolated" @@ -16706,6 +18925,7 @@ public enum console { @usableFromInline static let currentSrc: JSString = "currentSrc" @usableFromInline static let currentTarget: JSString = "currentTarget" @usableFromInline static let currentTime: JSString = "currentTime" + @usableFromInline static let curve: JSString = "curve" @usableFromInline static let customElements: JSString = "customElements" @usableFromInline static let customError: JSString = "customError" @usableFromInline static let d: JSString = "d" @@ -16728,6 +18948,7 @@ public enum console { @usableFromInline static let `defer`: JSString = "defer" @usableFromInline static let define: JSString = "define" @usableFromInline static let delay: JSString = "delay" + @usableFromInline static let delayTime: JSString = "delayTime" @usableFromInline static let delegatesFocus: JSString = "delegatesFocus" @usableFromInline static let delete: JSString = "delete" @usableFromInline static let deleteCaption: JSString = "deleteCaption" @@ -16748,15 +18969,18 @@ public enum console { @usableFromInline static let desynchronized: JSString = "desynchronized" @usableFromInline static let detach: JSString = "detach" @usableFromInline static let detail: JSString = "detail" + @usableFromInline static let detune: JSString = "detune" @usableFromInline static let deviceId: JSString = "deviceId" @usableFromInline static let dir: JSString = "dir" @usableFromInline static let dirName: JSString = "dirName" @usableFromInline static let direction: JSString = "direction" @usableFromInline static let dirxml: JSString = "dirxml" @usableFromInline static let disable: JSString = "disable" + @usableFromInline static let disableNormalization: JSString = "disableNormalization" @usableFromInline static let disabled: JSString = "disabled" @usableFromInline static let disconnect: JSString = "disconnect" @usableFromInline static let dispatchEvent: JSString = "dispatchEvent" + @usableFromInline static let distanceModel: JSString = "distanceModel" @usableFromInline static let doctype: JSString = "doctype" @usableFromInline static let document: JSString = "document" @usableFromInline static let documentElement: JSString = "documentElement" @@ -16800,6 +19024,7 @@ public enum console { @usableFromInline static let eventPhase: JSString = "eventPhase" @usableFromInline static let exact: JSString = "exact" @usableFromInline static let execCommand: JSString = "execCommand" + @usableFromInline static let exponentialRampToValueAtTime: JSString = "exponentialRampToValueAtTime" @usableFromInline static let extends: JSString = "extends" @usableFromInline static let external: JSString = "external" @usableFromInline static let extractContents: JSString = "extractContents" @@ -16807,7 +19032,10 @@ public enum console { @usableFromInline static let face: JSString = "face" @usableFromInline static let facingMode: JSString = "facingMode" @usableFromInline static let fastSeek: JSString = "fastSeek" + @usableFromInline static let feedback: JSString = "feedback" + @usableFromInline static let feedforward: JSString = "feedforward" @usableFromInline static let fetch: JSString = "fetch" + @usableFromInline static let fftSize: JSString = "fftSize" @usableFromInline static let fgColor: JSString = "fgColor" @usableFromInline static let filename: JSString = "filename" @usableFromInline static let files: JSString = "files" @@ -16840,17 +19068,23 @@ public enum console { @usableFromInline static let formTarget: JSString = "formTarget" @usableFromInline static let forms: JSString = "forms" @usableFromInline static let forward: JSString = "forward" + @usableFromInline static let forwardX: JSString = "forwardX" + @usableFromInline static let forwardY: JSString = "forwardY" + @usableFromInline static let forwardZ: JSString = "forwardZ" @usableFromInline static let frame: JSString = "frame" @usableFromInline static let frameBorder: JSString = "frameBorder" @usableFromInline static let frameElement: JSString = "frameElement" @usableFromInline static let frameRate: JSString = "frameRate" @usableFromInline static let frames: JSString = "frames" + @usableFromInline static let frequency: JSString = "frequency" + @usableFromInline static let frequencyBinCount: JSString = "frequencyBinCount" @usableFromInline static let fromFloat32Array: JSString = "fromFloat32Array" @usableFromInline static let fromFloat64Array: JSString = "fromFloat64Array" @usableFromInline static let fromMatrix: JSString = "fromMatrix" @usableFromInline static let fromPoint: JSString = "fromPoint" @usableFromInline static let fromQuad: JSString = "fromQuad" @usableFromInline static let fromRect: JSString = "fromRect" + @usableFromInline static let gain: JSString = "gain" @usableFromInline static let get: JSString = "get" @usableFromInline static let getAll: JSString = "getAll" @usableFromInline static let getAllResponseHeaders: JSString = "getAllResponseHeaders" @@ -16863,7 +19097,10 @@ public enum console { @usableFromInline static let getAttributeNodeNS: JSString = "getAttributeNodeNS" @usableFromInline static let getAudioTracks: JSString = "getAudioTracks" @usableFromInline static let getBounds: JSString = "getBounds" + @usableFromInline static let getByteFrequencyData: JSString = "getByteFrequencyData" + @usableFromInline static let getByteTimeDomainData: JSString = "getByteTimeDomainData" @usableFromInline static let getCapabilities: JSString = "getCapabilities" + @usableFromInline static let getChannelData: JSString = "getChannelData" @usableFromInline static let getComputedTiming: JSString = "getComputedTiming" @usableFromInline static let getConstraints: JSString = "getConstraints" @usableFromInline static let getContext: JSString = "getContext" @@ -16875,11 +19112,15 @@ public enum console { @usableFromInline static let getElementsByName: JSString = "getElementsByName" @usableFromInline static let getElementsByTagName: JSString = "getElementsByTagName" @usableFromInline static let getElementsByTagNameNS: JSString = "getElementsByTagNameNS" + @usableFromInline static let getFloatFrequencyData: JSString = "getFloatFrequencyData" + @usableFromInline static let getFloatTimeDomainData: JSString = "getFloatTimeDomainData" + @usableFromInline static let getFrequencyResponse: JSString = "getFrequencyResponse" @usableFromInline static let getImageData: JSString = "getImageData" @usableFromInline static let getKeyframes: JSString = "getKeyframes" @usableFromInline static let getLineDash: JSString = "getLineDash" @usableFromInline static let getModifierState: JSString = "getModifierState" @usableFromInline static let getNamedItemNS: JSString = "getNamedItemNS" + @usableFromInline static let getOutputTimestamp: JSString = "getOutputTimestamp" @usableFromInline static let getParameter: JSString = "getParameter" @usableFromInline static let getReader: JSString = "getReader" @usableFromInline static let getRegistration: JSString = "getRegistration" @@ -16937,6 +19178,7 @@ public enum console { @usableFromInline static let ignoreMethod: JSString = "ignoreMethod" @usableFromInline static let ignoreSearch: JSString = "ignoreSearch" @usableFromInline static let ignoreVary: JSString = "ignoreVary" + @usableFromInline static let imag: JSString = "imag" @usableFromInline static let imageOrientation: JSString = "imageOrientation" @usableFromInline static let imageSizes: JSString = "imageSizes" @usableFromInline static let imageSmoothingEnabled: JSString = "imageSmoothingEnabled" @@ -16962,6 +19204,7 @@ public enum console { @usableFromInline static let initStorageEvent: JSString = "initStorageEvent" @usableFromInline static let initUIEvent: JSString = "initUIEvent" @usableFromInline static let innerText: JSString = "innerText" + @usableFromInline static let inputBuffer: JSString = "inputBuffer" @usableFromInline static let inputEncoding: JSString = "inputEncoding" @usableFromInline static let inputMode: JSString = "inputMode" @usableFromInline static let inputType: JSString = "inputType" @@ -17008,6 +19251,7 @@ public enum console { @usableFromInline static let keyCode: JSString = "keyCode" @usableFromInline static let keys: JSString = "keys" @usableFromInline static let kind: JSString = "kind" + @usableFromInline static let knee: JSString = "knee" @usableFromInline static let label: JSString = "label" @usableFromInline static let labels: JSString = "labels" @usableFromInline static let lang: JSString = "lang" @@ -17018,6 +19262,7 @@ public enum console { @usableFromInline static let lastEventId: JSString = "lastEventId" @usableFromInline static let lastModified: JSString = "lastModified" @usableFromInline static let latency: JSString = "latency" + @usableFromInline static let latencyHint: JSString = "latencyHint" @usableFromInline static let left: JSString = "left" @usableFromInline static let length: JSString = "length" @usableFromInline static let lengthComputable: JSString = "lengthComputable" @@ -17027,11 +19272,13 @@ public enum console { @usableFromInline static let lineJoin: JSString = "lineJoin" @usableFromInline static let lineTo: JSString = "lineTo" @usableFromInline static let lineWidth: JSString = "lineWidth" + @usableFromInline static let linearRampToValueAtTime: JSString = "linearRampToValueAtTime" @usableFromInline static let lineno: JSString = "lineno" @usableFromInline static let link: JSString = "link" @usableFromInline static let linkColor: JSString = "linkColor" @usableFromInline static let links: JSString = "links" @usableFromInline static let list: JSString = "list" + @usableFromInline static let listener: JSString = "listener" @usableFromInline static let load: JSString = "load" @usableFromInline static let loaded: JSString = "loaded" @usableFromInline static let loading: JSString = "loading" @@ -17045,6 +19292,8 @@ public enum console { @usableFromInline static let lookupNamespaceURI: JSString = "lookupNamespaceURI" @usableFromInline static let lookupPrefix: JSString = "lookupPrefix" @usableFromInline static let loop: JSString = "loop" + @usableFromInline static let loopEnd: JSString = "loopEnd" + @usableFromInline static let loopStart: JSString = "loopStart" @usableFromInline static let low: JSString = "low" @usableFromInline static let lowsrc: JSString = "lowsrc" @usableFromInline static let m11: JSString = "m11" @@ -17070,17 +19319,27 @@ public enum console { @usableFromInline static let matches: JSString = "matches" @usableFromInline static let matrixTransform: JSString = "matrixTransform" @usableFromInline static let max: JSString = "max" + @usableFromInline static let maxChannelCount: JSString = "maxChannelCount" + @usableFromInline static let maxDecibels: JSString = "maxDecibels" + @usableFromInline static let maxDelayTime: JSString = "maxDelayTime" + @usableFromInline static let maxDistance: JSString = "maxDistance" @usableFromInline static let maxLength: JSString = "maxLength" + @usableFromInline static let maxValue: JSString = "maxValue" @usableFromInline static let measureText: JSString = "measureText" @usableFromInline static let media: JSString = "media" @usableFromInline static let mediaDevices: JSString = "mediaDevices" + @usableFromInline static let mediaElement: JSString = "mediaElement" + @usableFromInline static let mediaStream: JSString = "mediaStream" + @usableFromInline static let mediaStreamTrack: JSString = "mediaStreamTrack" @usableFromInline static let menubar: JSString = "menubar" @usableFromInline static let message: JSString = "message" @usableFromInline static let metaKey: JSString = "metaKey" @usableFromInline static let method: JSString = "method" @usableFromInline static let mimeTypes: JSString = "mimeTypes" @usableFromInline static let min: JSString = "min" + @usableFromInline static let minDecibels: JSString = "minDecibels" @usableFromInline static let minLength: JSString = "minLength" + @usableFromInline static let minValue: JSString = "minValue" @usableFromInline static let miterLimit: JSString = "miterLimit" @usableFromInline static let mode: JSString = "mode" @usableFromInline static let modifierAltGraph: JSString = "modifierAltGraph" @@ -17124,6 +19383,9 @@ public enum console { @usableFromInline static let nonce: JSString = "nonce" @usableFromInline static let normalize: JSString = "normalize" @usableFromInline static let now: JSString = "now" + @usableFromInline static let numberOfChannels: JSString = "numberOfChannels" + @usableFromInline static let numberOfInputs: JSString = "numberOfInputs" + @usableFromInline static let numberOfOutputs: JSString = "numberOfOutputs" @usableFromInline static let numberValue: JSString = "numberValue" @usableFromInline static let observe: JSString = "observe" @usableFromInline static let offset: JSString = "offset" @@ -17134,6 +19396,7 @@ public enum console { @usableFromInline static let onabort: JSString = "onabort" @usableFromInline static let onaddtrack: JSString = "onaddtrack" @usableFromInline static let onafterprint: JSString = "onafterprint" + @usableFromInline static let onaudioprocess: JSString = "onaudioprocess" @usableFromInline static let onauxclick: JSString = "onauxclick" @usableFromInline static let onbeforeprint: JSString = "onbeforeprint" @usableFromInline static let onbeforeunload: JSString = "onbeforeunload" @@ -17145,6 +19408,7 @@ public enum console { @usableFromInline static let onchange: JSString = "onchange" @usableFromInline static let onclick: JSString = "onclick" @usableFromInline static let onclose: JSString = "onclose" + @usableFromInline static let oncomplete: JSString = "oncomplete" @usableFromInline static let oncontextlost: JSString = "oncontextlost" @usableFromInline static let oncontextmenu: JSString = "oncontextmenu" @usableFromInline static let oncontextrestored: JSString = "oncontextrestored" @@ -17202,6 +19466,7 @@ public enum console { @usableFromInline static let onplay: JSString = "onplay" @usableFromInline static let onplaying: JSString = "onplaying" @usableFromInline static let onpopstate: JSString = "onpopstate" + @usableFromInline static let onprocessorerror: JSString = "onprocessorerror" @usableFromInline static let onprogress: JSString = "onprogress" @usableFromInline static let onratechange: JSString = "onratechange" @usableFromInline static let onreadystatechange: JSString = "onreadystatechange" @@ -17240,19 +19505,30 @@ public enum console { @usableFromInline static let opener: JSString = "opener" @usableFromInline static let optimum: JSString = "optimum" @usableFromInline static let options: JSString = "options" + @usableFromInline static let orientationX: JSString = "orientationX" + @usableFromInline static let orientationY: JSString = "orientationY" + @usableFromInline static let orientationZ: JSString = "orientationZ" @usableFromInline static let origin: JSString = "origin" @usableFromInline static let originAgentCluster: JSString = "originAgentCluster" @usableFromInline static let originTime: JSString = "originTime" @usableFromInline static let oscpu: JSString = "oscpu" @usableFromInline static let outerText: JSString = "outerText" + @usableFromInline static let outputBuffer: JSString = "outputBuffer" + @usableFromInline static let outputChannelCount: JSString = "outputChannelCount" + @usableFromInline static let outputLatency: JSString = "outputLatency" @usableFromInline static let overrideMimeType: JSString = "overrideMimeType" + @usableFromInline static let oversample: JSString = "oversample" @usableFromInline static let ownerDocument: JSString = "ownerDocument" @usableFromInline static let ownerElement: JSString = "ownerElement" @usableFromInline static let p1: JSString = "p1" @usableFromInline static let p2: JSString = "p2" @usableFromInline static let p3: JSString = "p3" @usableFromInline static let p4: JSString = "p4" + @usableFromInline static let pan: JSString = "pan" @usableFromInline static let panTiltZoom: JSString = "panTiltZoom" + @usableFromInline static let panningModel: JSString = "panningModel" + @usableFromInline static let parameterData: JSString = "parameterData" + @usableFromInline static let parameters: JSString = "parameters" @usableFromInline static let parent: JSString = "parent" @usableFromInline static let parentElement: JSString = "parentElement" @usableFromInline static let parentNode: JSString = "parentNode" @@ -17268,6 +19544,8 @@ public enum console { @usableFromInline static let pdfViewerEnabled: JSString = "pdfViewerEnabled" @usableFromInline static let pending: JSString = "pending" @usableFromInline static let performance: JSString = "performance" + @usableFromInline static let performanceTime: JSString = "performanceTime" + @usableFromInline static let periodicWave: JSString = "periodicWave" @usableFromInline static let persist: JSString = "persist" @usableFromInline static let persisted: JSString = "persisted" @usableFromInline static let personalbar: JSString = "personalbar" @@ -17280,6 +19558,7 @@ public enum console { @usableFromInline static let play: JSString = "play" @usableFromInline static let playState: JSString = "playState" @usableFromInline static let playbackRate: JSString = "playbackRate" + @usableFromInline static let playbackTime: JSString = "playbackTime" @usableFromInline static let played: JSString = "played" @usableFromInline static let playsInline: JSString = "playsInline" @usableFromInline static let plugins: JSString = "plugins" @@ -17289,6 +19568,9 @@ public enum console { @usableFromInline static let port2: JSString = "port2" @usableFromInline static let ports: JSString = "ports" @usableFromInline static let position: JSString = "position" + @usableFromInline static let positionX: JSString = "positionX" + @usableFromInline static let positionY: JSString = "positionY" + @usableFromInline static let positionZ: JSString = "positionZ" @usableFromInline static let postMessage: JSString = "postMessage" @usableFromInline static let poster: JSString = "poster" @usableFromInline static let preMultiplySelf: JSString = "preMultiplySelf" @@ -17308,6 +19590,7 @@ public enum console { @usableFromInline static let previousNode: JSString = "previousNode" @usableFromInline static let previousSibling: JSString = "previousSibling" @usableFromInline static let print: JSString = "print" + @usableFromInline static let processorOptions: JSString = "processorOptions" @usableFromInline static let product: JSString = "product" @usableFromInline static let productSub: JSString = "productSub" @usableFromInline static let progress: JSString = "progress" @@ -17331,6 +19614,7 @@ public enum console { @usableFromInline static let querySelectorAll: JSString = "querySelectorAll" @usableFromInline static let rangeOverflow: JSString = "rangeOverflow" @usableFromInline static let rangeUnderflow: JSString = "rangeUnderflow" + @usableFromInline static let ratio: JSString = "ratio" @usableFromInline static let read: JSString = "read" @usableFromInline static let readAsArrayBuffer: JSString = "readAsArrayBuffer" @usableFromInline static let readAsBinaryString: JSString = "readAsBinaryString" @@ -17341,10 +19625,13 @@ public enum console { @usableFromInline static let readableType: JSString = "readableType" @usableFromInline static let ready: JSString = "ready" @usableFromInline static let readyState: JSString = "readyState" + @usableFromInline static let real: JSString = "real" @usableFromInline static let reason: JSString = "reason" @usableFromInline static let rect: JSString = "rect" @usableFromInline static let redirect: JSString = "redirect" @usableFromInline static let redirected: JSString = "redirected" + @usableFromInline static let reduction: JSString = "reduction" + @usableFromInline static let refDistance: JSString = "refDistance" @usableFromInline static let referenceNode: JSString = "referenceNode" @usableFromInline static let referrer: JSString = "referrer" @usableFromInline static let referrerPolicy: JSString = "referrerPolicy" @@ -17355,6 +19642,7 @@ public enum console { @usableFromInline static let relList: JSString = "relList" @usableFromInline static let relatedNode: JSString = "relatedNode" @usableFromInline static let relatedTarget: JSString = "relatedTarget" + @usableFromInline static let release: JSString = "release" @usableFromInline static let releaseEvents: JSString = "releaseEvents" @usableFromInline static let releaseLock: JSString = "releaseLock" @usableFromInline static let reload: JSString = "reload" @@ -17369,6 +19657,7 @@ public enum console { @usableFromInline static let removeParameter: JSString = "removeParameter" @usableFromInline static let removeTrack: JSString = "removeTrack" @usableFromInline static let removedNodes: JSString = "removedNodes" + @usableFromInline static let renderedBuffer: JSString = "renderedBuffer" @usableFromInline static let `repeat`: JSString = "repeat" @usableFromInline static let replace: JSString = "replace" @usableFromInline static let replaceChild: JSString = "replaceChild" @@ -17399,6 +19688,7 @@ public enum console { @usableFromInline static let result: JSString = "result" @usableFromInline static let resultType: JSString = "resultType" @usableFromInline static let resultingClientId: JSString = "resultingClientId" + @usableFromInline static let resume: JSString = "resume" @usableFromInline static let returnValue: JSString = "returnValue" @usableFromInline static let rev: JSString = "rev" @usableFromInline static let reverse: JSString = "reverse" @@ -17406,6 +19696,7 @@ public enum console { @usableFromInline static let revokeObjectURL: JSString = "revokeObjectURL" @usableFromInline static let right: JSString = "right" @usableFromInline static let role: JSString = "role" + @usableFromInline static let rolloffFactor: JSString = "rolloffFactor" @usableFromInline static let root: JSString = "root" @usableFromInline static let rotate: JSString = "rotate" @usableFromInline static let rotateAxisAngle: JSString = "rotateAxisAngle" @@ -17475,16 +19766,22 @@ public enum console { @usableFromInline static let setMatrixValue: JSString = "setMatrixValue" @usableFromInline static let setNamedItem: JSString = "setNamedItem" @usableFromInline static let setNamedItemNS: JSString = "setNamedItemNS" + @usableFromInline static let setOrientation: JSString = "setOrientation" @usableFromInline static let setParameter: JSString = "setParameter" + @usableFromInline static let setPeriodicWave: JSString = "setPeriodicWave" + @usableFromInline static let setPosition: JSString = "setPosition" @usableFromInline static let setRangeText: JSString = "setRangeText" @usableFromInline static let setRequestHeader: JSString = "setRequestHeader" @usableFromInline static let setSelectionRange: JSString = "setSelectionRange" @usableFromInline static let setStart: JSString = "setStart" @usableFromInline static let setStartAfter: JSString = "setStartAfter" @usableFromInline static let setStartBefore: JSString = "setStartBefore" + @usableFromInline static let setTargetAtTime: JSString = "setTargetAtTime" @usableFromInline static let setTimeout: JSString = "setTimeout" @usableFromInline static let setTransform: JSString = "setTransform" @usableFromInline static let setValidity: JSString = "setValidity" + @usableFromInline static let setValueAtTime: JSString = "setValueAtTime" + @usableFromInline static let setValueCurveAtTime: JSString = "setValueCurveAtTime" @usableFromInline static let shadowBlur: JSString = "shadowBlur" @usableFromInline static let shadowColor: JSString = "shadowColor" @usableFromInline static let shadowOffsetX: JSString = "shadowOffsetX" @@ -17506,6 +19803,7 @@ public enum console { @usableFromInline static let slice: JSString = "slice" @usableFromInline static let slot: JSString = "slot" @usableFromInline static let slotAssignment: JSString = "slotAssignment" + @usableFromInline static let smoothingTimeConstant: JSString = "smoothingTimeConstant" @usableFromInline static let snapshotItem: JSString = "snapshotItem" @usableFromInline static let snapshotLength: JSString = "snapshotLength" @usableFromInline static let sort: JSString = "sort" @@ -17524,6 +19822,7 @@ public enum console { @usableFromInline static let startContainer: JSString = "startContainer" @usableFromInline static let startMessages: JSString = "startMessages" @usableFromInline static let startOffset: JSString = "startOffset" + @usableFromInline static let startRendering: JSString = "startRendering" @usableFromInline static let startTime: JSString = "startTime" @usableFromInline static let state: JSString = "state" @usableFromInline static let status: JSString = "status" @@ -17537,6 +19836,7 @@ public enum console { @usableFromInline static let stopImmediatePropagation: JSString = "stopImmediatePropagation" @usableFromInline static let stopPropagation: JSString = "stopPropagation" @usableFromInline static let storageArea: JSString = "storageArea" + @usableFromInline static let stream: JSString = "stream" @usableFromInline static let stringValue: JSString = "stringValue" @usableFromInline static let stroke: JSString = "stroke" @usableFromInline static let strokeRect: JSString = "strokeRect" @@ -17551,6 +19851,7 @@ public enum console { @usableFromInline static let summary: JSString = "summary" @usableFromInline static let supports: JSString = "supports" @usableFromInline static let surroundContents: JSString = "surroundContents" + @usableFromInline static let suspend: JSString = "suspend" @usableFromInline static let systemId: JSString = "systemId" @usableFromInline static let tBodies: JSString = "tBodies" @usableFromInline static let tFoot: JSString = "tFoot" @@ -17571,6 +19872,7 @@ public enum console { @usableFromInline static let textLength: JSString = "textLength" @usableFromInline static let textRendering: JSString = "textRendering" @usableFromInline static let textTracks: JSString = "textTracks" + @usableFromInline static let threshold: JSString = "threshold" @usableFromInline static let throwIfAborted: JSString = "throwIfAborted" @usableFromInline static let time: JSString = "time" @usableFromInline static let timeEnd: JSString = "timeEnd" @@ -17610,6 +19912,9 @@ public enum console { @usableFromInline static let types: JSString = "types" @usableFromInline static let unregister: JSString = "unregister" @usableFromInline static let unregisterProtocolHandler: JSString = "unregisterProtocolHandler" + @usableFromInline static let upX: JSString = "upX" + @usableFromInline static let upY: JSString = "upY" + @usableFromInline static let upZ: JSString = "upZ" @usableFromInline static let update: JSString = "update" @usableFromInline static let updatePlaybackRate: JSString = "updatePlaybackRate" @usableFromInline static let updateTiming: JSString = "updateTiming" @@ -17709,6 +20014,48 @@ public enum ArrayBuffer_or_String: JSValueCompatible, Any_ArrayBuffer_or_String } } +public protocol Any_AudioContextLatencyCategory_or_Double: ConvertibleToJSValue {} +extension AudioContextLatencyCategory: Any_AudioContextLatencyCategory_or_Double {} +extension Double: Any_AudioContextLatencyCategory_or_Double {} + +public enum AudioContextLatencyCategory_or_Double: JSValueCompatible, Any_AudioContextLatencyCategory_or_Double { + case audioContextLatencyCategory(AudioContextLatencyCategory) + case double(Double) + + var audioContextLatencyCategory: AudioContextLatencyCategory? { + switch self { + case let .audioContextLatencyCategory(audioContextLatencyCategory): return audioContextLatencyCategory + default: return nil + } + } + + var double: Double? { + switch self { + case let .double(double): return double + default: return nil + } + } + + public static func construct(from value: JSValue) -> Self? { + if let audioContextLatencyCategory: AudioContextLatencyCategory = value.fromJSValue() { + return .audioContextLatencyCategory(audioContextLatencyCategory) + } + if let double: Double = value.fromJSValue() { + return .double(double) + } + return nil + } + + public var jsValue: JSValue { + switch self { + case let .audioContextLatencyCategory(audioContextLatencyCategory): + return audioContextLatencyCategory.jsValue + case let .double(double): + return double.jsValue + } + } +} + public protocol Any_AudioTrack_or_TextTrack_or_VideoTrack: ConvertibleToJSValue {} extension AudioTrack: Any_AudioTrack_or_TextTrack_or_VideoTrack {} extension TextTrack: Any_AudioTrack_or_TextTrack_or_VideoTrack {} diff --git a/parse-idl/parse-all.js b/parse-idl/parse-all.js index 08b8be31..443e3e9a 100644 --- a/parse-idl/parse-all.js +++ b/parse-idl/parse-all.js @@ -24,6 +24,7 @@ console.log( "url", "streams", "mediacapture-streams", + "webaudio", ].map((key) => parsedFiles[key]), null, 2 From 9c93aea163884914c54d41aa5d5b4926fd05e904 Mon Sep 17 00:00:00 2001 From: Max Desiatov Date: Tue, 3 May 2022 15:22:54 +0100 Subject: [PATCH 3/3] Regenerate Swift code --- Sources/DOMKit/Generated.swift | 1092 +++++++++++++++----------------- 1 file changed, 522 insertions(+), 570 deletions(-) diff --git a/Sources/DOMKit/Generated.swift b/Sources/DOMKit/Generated.swift index b4c6d23a..abe71372 100644 --- a/Sources/DOMKit/Generated.swift +++ b/Sources/DOMKit/Generated.swift @@ -923,37 +923,14 @@ public enum AudioContextLatencyCategory: JSString, JSValueCompatible { @inlinable public var jsValue: JSValue { rawValue.jsValue } } -public class BoxQuadOptions: BridgedDictionary { - public convenience init(box: CSSBoxType, relativeTo: GeometryNode) { +public class AudioContextOptions: BridgedDictionary { + public convenience init(latencyHint: AudioContextLatencyCategory_or_Double, sampleRate: Float) { let object = JSObject.global[Strings.Object].function!.new() - object[Strings.box] = box.jsValue - object[Strings.relativeTo] = relativeTo.jsValue + object[Strings.latencyHint] = latencyHint.jsValue + object[Strings.sampleRate] = sampleRate.jsValue self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _box = ReadWriteAttribute(jsObject: object, name: Strings.box) - _relativeTo = ReadWriteAttribute(jsObject: object, name: Strings.relativeTo) - super.init(unsafelyWrapping: object) - } - - @ReadWriteAttribute - public var box: CSSBoxType - - @ReadWriteAttribute - public var relativeTo: GeometryNode -} - -public class BroadcastChannel: EventTarget { - @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.BroadcastChannel].function! } - - public required init(unsafelyWrapping jsObject: JSObject) { - _name = ReadonlyAttribute(jsObject: jsObject, name: Strings.name) - _onmessage = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onmessage) - _onmessageerror = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onmessageerror) - super.init(unsafelyWrapping: jsObject) - } - public required init(unsafelyWrapping object: JSObject) { _latencyHint = ReadWriteAttribute(jsObject: object, name: Strings.latencyHint) _sampleRate = ReadWriteAttribute(jsObject: object, name: Strings.sampleRate) @@ -1031,53 +1008,8 @@ public class AudioListener: JSBridgedClass { @ReadonlyAttribute public var forwardY: AudioParam -public enum CSSBoxType: JSString, JSValueCompatible { - case margin = "margin" - case border = "border" - case padding = "padding" - case content = "content" - - @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } - return nil - } - - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } - - @inlinable public var jsValue: JSValue { rawValue.jsValue } -} - -public class CSSPseudoElement: EventTarget, GeometryUtils { - @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.CSSPseudoElement].function! } - - public required init(unsafelyWrapping jsObject: JSObject) { - _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type) - _element = ReadonlyAttribute(jsObject: jsObject, name: Strings.element) - _parent = ReadonlyAttribute(jsObject: jsObject, name: Strings.parent) - super.init(unsafelyWrapping: jsObject) - } - @ReadonlyAttribute - public var type: String - - @ReadonlyAttribute - public var element: Element - - @ReadonlyAttribute - public var parent: CSSPseudoElement_or_Element - - @inlinable public func pseudo(type: String) -> CSSPseudoElement? { - let this = jsObject - return this[Strings.pseudo].function!(this: this, arguments: [type.jsValue]).fromJSValue()! - } -} - -public class Cache: JSBridgedClass { - @inlinable public class var constructor: JSFunction { JSObject.global[Strings.Cache].function! } + public var forwardZ: AudioParam @ReadonlyAttribute public var upX: AudioParam @@ -2038,6 +1970,27 @@ public extension Body { } } +public class BoxQuadOptions: BridgedDictionary { + public convenience init(box: CSSBoxType, relativeTo: GeometryNode) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.box] = box.jsValue + object[Strings.relativeTo] = relativeTo.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _box = ReadWriteAttribute(jsObject: object, name: Strings.box) + _relativeTo = ReadWriteAttribute(jsObject: object, name: Strings.relativeTo) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var box: CSSBoxType + + @ReadWriteAttribute + public var relativeTo: GeometryNode +} + public class BroadcastChannel: EventTarget { @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.BroadcastChannel].function! } @@ -2102,6 +2055,51 @@ public class CDATASection: Text { } } +public enum CSSBoxType: JSString, JSValueCompatible { + case margin = "margin" + case border = "border" + case padding = "padding" + case content = "content" + + @inlinable public static func construct(from jsValue: JSValue) -> Self? { + if let string = jsValue.jsString { + return Self(rawValue: string) + } + return nil + } + + @inlinable public init?(string: String) { + self.init(rawValue: JSString(string)) + } + + @inlinable public var jsValue: JSValue { rawValue.jsValue } +} + +public class CSSPseudoElement: EventTarget, GeometryUtils { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.CSSPseudoElement].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type) + _element = ReadonlyAttribute(jsObject: jsObject, name: Strings.element) + _parent = ReadonlyAttribute(jsObject: jsObject, name: Strings.parent) + super.init(unsafelyWrapping: jsObject) + } + + @ReadonlyAttribute + public var type: String + + @ReadonlyAttribute + public var element: Element + + @ReadonlyAttribute + public var parent: CSSPseudoElement_or_Element + + @inlinable public func pseudo(type: String) -> CSSPseudoElement? { + let this = jsObject + return this[Strings.pseudo].function!(this: this, arguments: [type.jsValue]).fromJSValue()! + } +} + public class Cache: JSBridgedClass { @inlinable public class var constructor: JSFunction { JSObject.global[Strings.Cache].function! } @@ -2127,33 +2125,6 @@ public class Cache: JSBridgedClass { let this = jsObject return this[Strings.matchAll].function!(this: this, arguments: [request?.jsValue ?? .undefined, options?.jsValue ?? .undefined]).fromJSValue()! } -} - -public class CaretPosition: JSBridgedClass { - @inlinable public class var constructor: JSFunction { JSObject.global[Strings.CaretPosition].function! } - - public let jsObject: JSObject - - public required init(unsafelyWrapping jsObject: JSObject) { - _offsetNode = ReadonlyAttribute(jsObject: jsObject, name: Strings.offsetNode) - _offset = ReadonlyAttribute(jsObject: jsObject, name: Strings.offset) - self.jsObject = jsObject - } - - @ReadonlyAttribute - public var offsetNode: Node - - @ReadonlyAttribute - public var offset: UInt32 - - @inlinable public func getClientRect() -> DOMRect? { - let this = jsObject - return this[Strings.getClientRect].function!(this: this, arguments: []).fromJSValue()! - } -} - -public class CharacterData: Node, NonDocumentTypeChildNode, ChildNode { - @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.CharacterData].function! } @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable public func matchAll(request: RequestInfo? = nil, options: CacheQueryOptions? = nil) async throws -> [Response] { @@ -2430,43 +2401,9 @@ public extension CanvasDrawPath { _ = this[Strings.fill].function!(this: this, arguments: [path.jsValue, fillRule?.jsValue ?? .undefined]) } - @ReadWriteAttribute - public var progress: Double? - - @ReadWriteAttribute - public var currentIteration: Double? -} - -public class ConvertCoordinateOptions: BridgedDictionary { - public convenience init(fromBox: CSSBoxType, toBox: CSSBoxType) { - let object = JSObject.global[Strings.Object].function!.new() - object[Strings.fromBox] = fromBox.jsValue - object[Strings.toBox] = toBox.jsValue - self.init(unsafelyWrapping: object) - } - - public required init(unsafelyWrapping object: JSObject) { - _fromBox = ReadWriteAttribute(jsObject: object, name: Strings.fromBox) - _toBox = ReadWriteAttribute(jsObject: object, name: Strings.toBox) - super.init(unsafelyWrapping: object) - } - - @ReadWriteAttribute - public var fromBox: CSSBoxType - - @ReadWriteAttribute - public var toBox: CSSBoxType -} - -public class CountQueuingStrategy: JSBridgedClass { - @inlinable public class var constructor: JSFunction { JSObject.global[Strings.CountQueuingStrategy].function! } - - public let jsObject: JSObject - - public required init(unsafelyWrapping jsObject: JSObject) { - _highWaterMark = ReadonlyAttribute(jsObject: jsObject, name: Strings.highWaterMark) - _size = ReadonlyAttribute(jsObject: jsObject, name: Strings.size) - self.jsObject = jsObject + @inlinable func stroke() { + let this = jsObject + _ = this[Strings.stroke].function!(this: this, arguments: []) } @inlinable func stroke(path: Path2D) { @@ -3204,6 +3141,29 @@ public extension CanvasUserInterface { } } +public class CaretPosition: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.CaretPosition].function! } + + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { + _offsetNode = ReadonlyAttribute(jsObject: jsObject, name: Strings.offsetNode) + _offset = ReadonlyAttribute(jsObject: jsObject, name: Strings.offset) + self.jsObject = jsObject + } + + @ReadonlyAttribute + public var offsetNode: Node + + @ReadonlyAttribute + public var offset: UInt32 + + @inlinable public func getClientRect() -> DOMRect? { + let this = jsObject + return this[Strings.getClientRect].function!(this: this, arguments: []).fromJSValue()! + } +} + public enum ChannelCountMode: JSString, JSValueCompatible { case max = "max" case clampedMax = "clamped-max" @@ -3645,6 +3605,27 @@ public class ConstrainULongRange: BridgedDictionary { public var ideal: UInt32 } +public class ConvertCoordinateOptions: BridgedDictionary { + public convenience init(fromBox: CSSBoxType, toBox: CSSBoxType) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.fromBox] = fromBox.jsValue + object[Strings.toBox] = toBox.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _fromBox = ReadWriteAttribute(jsObject: object, name: Strings.fromBox) + _toBox = ReadWriteAttribute(jsObject: object, name: Strings.toBox) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var fromBox: CSSBoxType + + @ReadWriteAttribute + public var toBox: CSSBoxType +} + public class ConvolverNode: AudioNode { @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.ConvolverNode].function! } @@ -3888,53 +3869,32 @@ public class DOMImplementation: JSBridgedClass { } } -public class Document: Node, NonElementParentNode, DocumentOrShadowRoot, ParentNode, XPathEvaluatorBase, GlobalEventHandlers, DocumentAndElementEventHandlers, GeometryUtils { - @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.Document].function! } - - public required init(unsafelyWrapping jsObject: JSObject) { - _implementation = ReadonlyAttribute(jsObject: jsObject, name: Strings.implementation) - _URL = ReadonlyAttribute(jsObject: jsObject, name: Strings.URL) - _documentURI = ReadonlyAttribute(jsObject: jsObject, name: Strings.documentURI) - _compatMode = ReadonlyAttribute(jsObject: jsObject, name: Strings.compatMode) - _characterSet = ReadonlyAttribute(jsObject: jsObject, name: Strings.characterSet) - _charset = ReadonlyAttribute(jsObject: jsObject, name: Strings.charset) - _inputEncoding = ReadonlyAttribute(jsObject: jsObject, name: Strings.inputEncoding) - _contentType = ReadonlyAttribute(jsObject: jsObject, name: Strings.contentType) - _doctype = ReadonlyAttribute(jsObject: jsObject, name: Strings.doctype) - _documentElement = ReadonlyAttribute(jsObject: jsObject, name: Strings.documentElement) - _location = ReadonlyAttribute(jsObject: jsObject, name: Strings.location) - _domain = ReadWriteAttribute(jsObject: jsObject, name: Strings.domain) - _referrer = ReadonlyAttribute(jsObject: jsObject, name: Strings.referrer) - _cookie = ReadWriteAttribute(jsObject: jsObject, name: Strings.cookie) - _lastModified = ReadonlyAttribute(jsObject: jsObject, name: Strings.lastModified) - _readyState = ReadonlyAttribute(jsObject: jsObject, name: Strings.readyState) - _title = ReadWriteAttribute(jsObject: jsObject, name: Strings.title) - _dir = ReadWriteAttribute(jsObject: jsObject, name: Strings.dir) - _body = ReadWriteAttribute(jsObject: jsObject, name: Strings.body) - _head = ReadonlyAttribute(jsObject: jsObject, name: Strings.head) - _images = ReadonlyAttribute(jsObject: jsObject, name: Strings.images) - _embeds = ReadonlyAttribute(jsObject: jsObject, name: Strings.embeds) - _plugins = ReadonlyAttribute(jsObject: jsObject, name: Strings.plugins) - _links = ReadonlyAttribute(jsObject: jsObject, name: Strings.links) - _forms = ReadonlyAttribute(jsObject: jsObject, name: Strings.forms) - _scripts = ReadonlyAttribute(jsObject: jsObject, name: Strings.scripts) - _currentScript = ReadonlyAttribute(jsObject: jsObject, name: Strings.currentScript) - _defaultView = ReadonlyAttribute(jsObject: jsObject, name: Strings.defaultView) - _designMode = ReadWriteAttribute(jsObject: jsObject, name: Strings.designMode) - _hidden = ReadonlyAttribute(jsObject: jsObject, name: Strings.hidden) - _visibilityState = ReadonlyAttribute(jsObject: jsObject, name: Strings.visibilityState) - _onreadystatechange = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onreadystatechange) - _onvisibilitychange = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onvisibilitychange) - _fgColor = ReadWriteAttribute(jsObject: jsObject, name: Strings.fgColor) - _linkColor = ReadWriteAttribute(jsObject: jsObject, name: Strings.linkColor) - _vlinkColor = ReadWriteAttribute(jsObject: jsObject, name: Strings.vlinkColor) - _alinkColor = ReadWriteAttribute(jsObject: jsObject, name: Strings.alinkColor) - _bgColor = ReadWriteAttribute(jsObject: jsObject, name: Strings.bgColor) - _anchors = ReadonlyAttribute(jsObject: jsObject, name: Strings.anchors) - _applets = ReadonlyAttribute(jsObject: jsObject, name: Strings.applets) - _all = ReadonlyAttribute(jsObject: jsObject, name: Strings.all) - _timeline = ReadonlyAttribute(jsObject: jsObject, name: Strings.timeline) - _scrollingElement = ReadonlyAttribute(jsObject: jsObject, name: Strings.scrollingElement) +public class DOMMatrix: DOMMatrixReadOnly { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.DOMMatrix].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _a = ReadWriteAttribute(jsObject: jsObject, name: Strings.a) + _b = ReadWriteAttribute(jsObject: jsObject, name: Strings.b) + _c = ReadWriteAttribute(jsObject: jsObject, name: Strings.c) + _d = ReadWriteAttribute(jsObject: jsObject, name: Strings.d) + _e = ReadWriteAttribute(jsObject: jsObject, name: Strings.e) + _f = ReadWriteAttribute(jsObject: jsObject, name: Strings.f) + _m11 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m11) + _m12 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m12) + _m13 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m13) + _m14 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m14) + _m21 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m21) + _m22 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m22) + _m23 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m23) + _m24 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m24) + _m31 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m31) + _m32 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m32) + _m33 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m33) + _m34 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m34) + _m41 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m41) + _m42 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m42) + _m43 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m43) + _m44 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m44) super.init(unsafelyWrapping: jsObject) } @@ -4217,26 +4177,8 @@ public class DOMMatrix2DInit: BridgedDictionary { @ReadWriteAttribute public var m41: Double - @ReadonlyAttribute - public var timeline: DocumentTimeline - - @inlinable public func elementFromPoint(x: Double, y: Double) -> Element? { - let this = jsObject - return this[Strings.elementFromPoint].function!(this: this, arguments: [x.jsValue, y.jsValue]).fromJSValue()! - } - - @inlinable public func elementsFromPoint(x: Double, y: Double) -> [Element] { - let this = jsObject - return this[Strings.elementsFromPoint].function!(this: this, arguments: [x.jsValue, y.jsValue]).fromJSValue()! - } - - @inlinable public func caretPositionFromPoint(x: Double, y: Double) -> CaretPosition? { - let this = jsObject - return this[Strings.caretPositionFromPoint].function!(this: this, arguments: [x.jsValue, y.jsValue]).fromJSValue()! - } - - @ReadonlyAttribute - public var scrollingElement: Element? + @ReadWriteAttribute + public var m42: Double } public class DOMMatrixInit: BridgedDictionary { @@ -4393,30 +4335,11 @@ public class DOMMatrixReadOnly: JSBridgedClass { @ReadonlyAttribute public var m22: Double -public class Element: Node, ParentNode, NonDocumentTypeChildNode, ChildNode, Slottable, ARIAMixin, Animatable, GeometryUtils { - @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.Element].function! } + @ReadonlyAttribute + public var m23: Double - public required init(unsafelyWrapping jsObject: JSObject) { - _namespaceURI = ReadonlyAttribute(jsObject: jsObject, name: Strings.namespaceURI) - _prefix = ReadonlyAttribute(jsObject: jsObject, name: Strings.prefix) - _localName = ReadonlyAttribute(jsObject: jsObject, name: Strings.localName) - _tagName = ReadonlyAttribute(jsObject: jsObject, name: Strings.tagName) - _id = ReadWriteAttribute(jsObject: jsObject, name: Strings.id) - _className = ReadWriteAttribute(jsObject: jsObject, name: Strings.className) - _classList = ReadonlyAttribute(jsObject: jsObject, name: Strings.classList) - _slot = ReadWriteAttribute(jsObject: jsObject, name: Strings.slot) - _attributes = ReadonlyAttribute(jsObject: jsObject, name: Strings.attributes) - _shadowRoot = ReadonlyAttribute(jsObject: jsObject, name: Strings.shadowRoot) - _scrollTop = ReadWriteAttribute(jsObject: jsObject, name: Strings.scrollTop) - _scrollLeft = ReadWriteAttribute(jsObject: jsObject, name: Strings.scrollLeft) - _scrollWidth = ReadonlyAttribute(jsObject: jsObject, name: Strings.scrollWidth) - _scrollHeight = ReadonlyAttribute(jsObject: jsObject, name: Strings.scrollHeight) - _clientTop = ReadonlyAttribute(jsObject: jsObject, name: Strings.clientTop) - _clientLeft = ReadonlyAttribute(jsObject: jsObject, name: Strings.clientLeft) - _clientWidth = ReadonlyAttribute(jsObject: jsObject, name: Strings.clientWidth) - _clientHeight = ReadonlyAttribute(jsObject: jsObject, name: Strings.clientHeight) - super.init(unsafelyWrapping: jsObject) - } + @ReadonlyAttribute + public var m24: Double @ReadonlyAttribute public var m31: Double @@ -4581,84 +4504,7 @@ public enum DOMParserSupportedType: JSString, JSValueCompatible { self.init(rawValue: JSString(string)) } - @inlinable public func pseudo(type: String) -> CSSPseudoElement? { - let this = jsObject - return this[Strings.pseudo].function!(this: this, arguments: [type.jsValue]).fromJSValue()! - } - - @inlinable public func getClientRects() -> DOMRectList { - let this = jsObject - return this[Strings.getClientRects].function!(this: this, arguments: []).fromJSValue()! - } - - @inlinable public func getBoundingClientRect() -> DOMRect { - let this = jsObject - return this[Strings.getBoundingClientRect].function!(this: this, arguments: []).fromJSValue()! - } - - @inlinable public func isVisible(options: IsVisibleOptions? = nil) -> Bool { - let this = jsObject - return this[Strings.isVisible].function!(this: this, arguments: [options?.jsValue ?? .undefined]).fromJSValue()! - } - - @inlinable public func scrollIntoView(arg: Bool_or_ScrollIntoViewOptions? = nil) { - let this = jsObject - _ = this[Strings.scrollIntoView].function!(this: this, arguments: [arg?.jsValue ?? .undefined]) - } - - @inlinable public func scroll(options: ScrollToOptions? = nil) { - let this = jsObject - _ = this[Strings.scroll].function!(this: this, arguments: [options?.jsValue ?? .undefined]) - } - - @inlinable public func scroll(x: Double, y: Double) { - let this = jsObject - _ = this[Strings.scroll].function!(this: this, arguments: [x.jsValue, y.jsValue]) - } - - @inlinable public func scrollTo(options: ScrollToOptions? = nil) { - let this = jsObject - _ = this[Strings.scrollTo].function!(this: this, arguments: [options?.jsValue ?? .undefined]) - } - - @inlinable public func scrollTo(x: Double, y: Double) { - let this = jsObject - _ = this[Strings.scrollTo].function!(this: this, arguments: [x.jsValue, y.jsValue]) - } - - @inlinable public func scrollBy(options: ScrollToOptions? = nil) { - let this = jsObject - _ = this[Strings.scrollBy].function!(this: this, arguments: [options?.jsValue ?? .undefined]) - } - - @inlinable public func scrollBy(x: Double, y: Double) { - let this = jsObject - _ = this[Strings.scrollBy].function!(this: this, arguments: [x.jsValue, y.jsValue]) - } - - @ReadWriteAttribute - public var scrollTop: Double - - @ReadWriteAttribute - public var scrollLeft: Double - - @ReadonlyAttribute - public var scrollWidth: Int32 - - @ReadonlyAttribute - public var scrollHeight: Int32 - - @ReadonlyAttribute - public var clientTop: Int32 - - @ReadonlyAttribute - public var clientLeft: Int32 - - @ReadonlyAttribute - public var clientWidth: Int32 - - @ReadonlyAttribute - public var clientHeight: Int32 + @inlinable public var jsValue: JSValue { rawValue.jsValue } } public class DOMPoint: DOMPointReadOnly { @@ -5296,7 +5142,7 @@ public enum DistanceModelType: JSString, JSValueCompatible { @inlinable public var jsValue: JSValue { rawValue.jsValue } } -public class Document: Node, NonElementParentNode, DocumentOrShadowRoot, ParentNode, XPathEvaluatorBase, GlobalEventHandlers, DocumentAndElementEventHandlers { +public class Document: Node, NonElementParentNode, DocumentOrShadowRoot, ParentNode, XPathEvaluatorBase, GlobalEventHandlers, DocumentAndElementEventHandlers, GeometryUtils { @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.Document].function! } public required init(unsafelyWrapping jsObject: JSObject) { @@ -5342,6 +5188,7 @@ public class Document: Node, NonElementParentNode, DocumentOrShadowRoot, ParentN _applets = ReadonlyAttribute(jsObject: jsObject, name: Strings.applets) _all = ReadonlyAttribute(jsObject: jsObject, name: Strings.all) _timeline = ReadonlyAttribute(jsObject: jsObject, name: Strings.timeline) + _scrollingElement = ReadonlyAttribute(jsObject: jsObject, name: Strings.scrollingElement) super.init(unsafelyWrapping: jsObject) } @@ -5642,6 +5489,24 @@ public class Document: Node, NonElementParentNode, DocumentOrShadowRoot, ParentN @ReadonlyAttribute public var timeline: DocumentTimeline + + @inlinable public func elementFromPoint(x: Double, y: Double) -> Element? { + let this = jsObject + return this[Strings.elementFromPoint].function!(this: this, arguments: [x.jsValue, y.jsValue]).fromJSValue()! + } + + @inlinable public func elementsFromPoint(x: Double, y: Double) -> [Element] { + let this = jsObject + return this[Strings.elementsFromPoint].function!(this: this, arguments: [x.jsValue, y.jsValue]).fromJSValue()! + } + + @inlinable public func caretPositionFromPoint(x: Double, y: Double) -> CaretPosition? { + let this = jsObject + return this[Strings.caretPositionFromPoint].function!(this: this, arguments: [x.jsValue, y.jsValue]).fromJSValue()! + } + + @ReadonlyAttribute + public var scrollingElement: Element? } public protocol DocumentAndElementEventHandlers: JSBridgedClass {} @@ -5706,43 +5571,8 @@ public enum DocumentReadyState: JSString, JSValueCompatible { public class DocumentTimeline: AnimationTimeline { @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.DocumentTimeline].function! } -public protocol GeometryUtils: JSBridgedClass {} -public extension GeometryUtils { - @inlinable func getBoxQuads(options: BoxQuadOptions? = nil) -> [DOMQuad] { - let this = jsObject - _ = this[Strings.remove].function!(this: this, arguments: tokens.map(\.jsValue)) - return this[Strings.getBoxQuads].function!(this: this, arguments: [options?.jsValue ?? .undefined]).fromJSValue()! - } - - @inlinable public func toggle(token: String, force: Bool? = nil) -> Bool { - @inlinable func convertQuadFromNode(quad: DOMQuadInit, from: GeometryNode, options: ConvertCoordinateOptions? = nil) -> DOMQuad { - let this = jsObject - return this[Strings.toggle].function!(this: this, arguments: [token.jsValue, force?.jsValue ?? .undefined]).fromJSValue()! - return this[Strings.convertQuadFromNode].function!(this: this, arguments: [quad.jsValue, from.jsValue, options?.jsValue ?? .undefined]).fromJSValue()! - } - - @inlinable public func replace(token: String, newToken: String) -> Bool { - @inlinable func convertRectFromNode(rect: DOMRectReadOnly, from: GeometryNode, options: ConvertCoordinateOptions? = nil) -> DOMQuad { - let this = jsObject - return this[Strings.replace].function!(this: this, arguments: [token.jsValue, newToken.jsValue]).fromJSValue()! - return this[Strings.convertRectFromNode].function!(this: this, arguments: [rect.jsValue, from.jsValue, options?.jsValue ?? .undefined]).fromJSValue()! - } - - @inlinable public func supports(token: String) -> Bool { - @inlinable func convertPointFromNode(point: DOMPointInit, from: GeometryNode, options: ConvertCoordinateOptions? = nil) -> DOMPoint { - let this = jsObject - return this[Strings.supports].function!(this: this, arguments: [token.jsValue]).fromJSValue()! - return this[Strings.convertPointFromNode].function!(this: this, arguments: [point.jsValue, from.jsValue, options?.jsValue ?? .undefined]).fromJSValue()! - } -} - - @ReadWriteAttribute - public var value: String -public class GetAnimationsOptions: BridgedDictionary { - public convenience init(subtree: Bool) { - let object = JSObject.global[Strings.Object].function!.new() - object[Strings.subtree] = subtree.jsValue - self.init(unsafelyWrapping: object) + public required init(unsafelyWrapping jsObject: JSObject) { + super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(options: DocumentTimelineOptions? = nil) { @@ -5975,7 +5805,7 @@ public class EffectTiming: BridgedDictionary { public var easing: String } -public class Element: Node, ParentNode, NonDocumentTypeChildNode, ChildNode, Slottable, ARIAMixin, Animatable { +public class Element: Node, ParentNode, NonDocumentTypeChildNode, ChildNode, Slottable, ARIAMixin, Animatable, GeometryUtils { @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.Element].function! } public required init(unsafelyWrapping jsObject: JSObject) { @@ -5989,6 +5819,14 @@ public class Element: Node, ParentNode, NonDocumentTypeChildNode, ChildNode, Slo _slot = ReadWriteAttribute(jsObject: jsObject, name: Strings.slot) _attributes = ReadonlyAttribute(jsObject: jsObject, name: Strings.attributes) _shadowRoot = ReadonlyAttribute(jsObject: jsObject, name: Strings.shadowRoot) + _scrollTop = ReadWriteAttribute(jsObject: jsObject, name: Strings.scrollTop) + _scrollLeft = ReadWriteAttribute(jsObject: jsObject, name: Strings.scrollLeft) + _scrollWidth = ReadonlyAttribute(jsObject: jsObject, name: Strings.scrollWidth) + _scrollHeight = ReadonlyAttribute(jsObject: jsObject, name: Strings.scrollHeight) + _clientTop = ReadonlyAttribute(jsObject: jsObject, name: Strings.clientTop) + _clientLeft = ReadonlyAttribute(jsObject: jsObject, name: Strings.clientLeft) + _clientWidth = ReadonlyAttribute(jsObject: jsObject, name: Strings.clientWidth) + _clientHeight = ReadonlyAttribute(jsObject: jsObject, name: Strings.clientHeight) super.init(unsafelyWrapping: jsObject) } @@ -6146,6 +5984,85 @@ public class Element: Node, ParentNode, NonDocumentTypeChildNode, ChildNode, Slo let this = jsObject _ = this[Strings.insertAdjacentText].function!(this: this, arguments: [`where`.jsValue, data.jsValue]) } + + @inlinable public func pseudo(type: String) -> CSSPseudoElement? { + let this = jsObject + return this[Strings.pseudo].function!(this: this, arguments: [type.jsValue]).fromJSValue()! + } + + @inlinable public func getClientRects() -> DOMRectList { + let this = jsObject + return this[Strings.getClientRects].function!(this: this, arguments: []).fromJSValue()! + } + + @inlinable public func getBoundingClientRect() -> DOMRect { + let this = jsObject + return this[Strings.getBoundingClientRect].function!(this: this, arguments: []).fromJSValue()! + } + + @inlinable public func isVisible(options: IsVisibleOptions? = nil) -> Bool { + let this = jsObject + return this[Strings.isVisible].function!(this: this, arguments: [options?.jsValue ?? .undefined]).fromJSValue()! + } + + @inlinable public func scrollIntoView(arg: Bool_or_ScrollIntoViewOptions? = nil) { + let this = jsObject + _ = this[Strings.scrollIntoView].function!(this: this, arguments: [arg?.jsValue ?? .undefined]) + } + + @inlinable public func scroll(options: ScrollToOptions? = nil) { + let this = jsObject + _ = this[Strings.scroll].function!(this: this, arguments: [options?.jsValue ?? .undefined]) + } + + @inlinable public func scroll(x: Double, y: Double) { + let this = jsObject + _ = this[Strings.scroll].function!(this: this, arguments: [x.jsValue, y.jsValue]) + } + + @inlinable public func scrollTo(options: ScrollToOptions? = nil) { + let this = jsObject + _ = this[Strings.scrollTo].function!(this: this, arguments: [options?.jsValue ?? .undefined]) + } + + @inlinable public func scrollTo(x: Double, y: Double) { + let this = jsObject + _ = this[Strings.scrollTo].function!(this: this, arguments: [x.jsValue, y.jsValue]) + } + + @inlinable public func scrollBy(options: ScrollToOptions? = nil) { + let this = jsObject + _ = this[Strings.scrollBy].function!(this: this, arguments: [options?.jsValue ?? .undefined]) + } + + @inlinable public func scrollBy(x: Double, y: Double) { + let this = jsObject + _ = this[Strings.scrollBy].function!(this: this, arguments: [x.jsValue, y.jsValue]) + } + + @ReadWriteAttribute + public var scrollTop: Double + + @ReadWriteAttribute + public var scrollLeft: Double + + @ReadonlyAttribute + public var scrollWidth: Int32 + + @ReadonlyAttribute + public var scrollHeight: Int32 + + @ReadonlyAttribute + public var clientTop: Int32 + + @ReadonlyAttribute + public var clientLeft: Int32 + + @ReadonlyAttribute + public var clientWidth: Int32 + + @ReadonlyAttribute + public var clientHeight: Int32 } public protocol ElementContentEditable: JSBridgedClass {} @@ -7073,6 +6990,29 @@ public extension GenericTransformStream { @inlinable var writable: WritableStream { ReadonlyAttribute[Strings.writable, in: jsObject] } } +public protocol GeometryUtils: JSBridgedClass {} +public extension GeometryUtils { + @inlinable func getBoxQuads(options: BoxQuadOptions? = nil) -> [DOMQuad] { + let this = jsObject + return this[Strings.getBoxQuads].function!(this: this, arguments: [options?.jsValue ?? .undefined]).fromJSValue()! + } + + @inlinable func convertQuadFromNode(quad: DOMQuadInit, from: GeometryNode, options: ConvertCoordinateOptions? = nil) -> DOMQuad { + let this = jsObject + return this[Strings.convertQuadFromNode].function!(this: this, arguments: [quad.jsValue, from.jsValue, options?.jsValue ?? .undefined]).fromJSValue()! + } + + @inlinable func convertRectFromNode(rect: DOMRectReadOnly, from: GeometryNode, options: ConvertCoordinateOptions? = nil) -> DOMQuad { + let this = jsObject + return this[Strings.convertRectFromNode].function!(this: this, arguments: [rect.jsValue, from.jsValue, options?.jsValue ?? .undefined]).fromJSValue()! + } + + @inlinable func convertPointFromNode(point: DOMPointInit, from: GeometryNode, options: ConvertCoordinateOptions? = nil) -> DOMPoint { + let this = jsObject + return this[Strings.convertPointFromNode].function!(this: this, arguments: [point.jsValue, from.jsValue, options?.jsValue ?? .undefined]).fromJSValue()! + } +} + public class GetAnimationsOptions: BridgedDictionary { public convenience init(subtree: Bool) { let object = JSObject.global[Strings.Object].function!.new() @@ -7969,6 +7909,11 @@ public class HTMLElement: Element, GlobalEventHandlers, DocumentAndElementEventH _autocapitalize = ReadWriteAttribute(jsObject: jsObject, name: Strings.autocapitalize) _innerText = ReadWriteAttribute(jsObject: jsObject, name: Strings.innerText) _outerText = ReadWriteAttribute(jsObject: jsObject, name: Strings.outerText) + _offsetParent = ReadonlyAttribute(jsObject: jsObject, name: Strings.offsetParent) + _offsetTop = ReadonlyAttribute(jsObject: jsObject, name: Strings.offsetTop) + _offsetLeft = ReadonlyAttribute(jsObject: jsObject, name: Strings.offsetLeft) + _offsetWidth = ReadonlyAttribute(jsObject: jsObject, name: Strings.offsetWidth) + _offsetHeight = ReadonlyAttribute(jsObject: jsObject, name: Strings.offsetHeight) super.init(unsafelyWrapping: jsObject) } @@ -8024,6 +7969,21 @@ public class HTMLElement: Element, GlobalEventHandlers, DocumentAndElementEventH let this = jsObject return this[Strings.attachInternals].function!(this: this, arguments: []).fromJSValue()! } + + @ReadonlyAttribute + public var offsetParent: Element? + + @ReadonlyAttribute + public var offsetTop: Int32 + + @ReadonlyAttribute + public var offsetLeft: Int32 + + @ReadonlyAttribute + public var offsetWidth: Int32 + + @ReadonlyAttribute + public var offsetHeight: Int32 } public class HTMLEmbedElement: HTMLElement { @@ -8578,6 +8538,8 @@ public class HTMLImageElement: HTMLElement { _vspace = ReadWriteAttribute(jsObject: jsObject, name: Strings.vspace) _longDesc = ReadWriteAttribute(jsObject: jsObject, name: Strings.longDesc) _border = ReadWriteAttribute(jsObject: jsObject, name: Strings.border) + _x = ReadonlyAttribute(jsObject: jsObject, name: Strings.x) + _y = ReadonlyAttribute(jsObject: jsObject, name: Strings.y) super.init(unsafelyWrapping: jsObject) } @@ -8665,6 +8627,12 @@ public class HTMLImageElement: HTMLElement { @ReadWriteAttribute public var border: String + + @ReadonlyAttribute + public var x: Int32 + + @ReadonlyAttribute + public var y: Int32 } public class HTMLInputElement: HTMLElement { @@ -9373,24 +9341,13 @@ public class HTMLMeterElement: HTMLElement { @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.HTMLMeterElement].function! } public required init(unsafelyWrapping jsObject: JSObject) { - _title = ReadWriteAttribute(jsObject: jsObject, name: Strings.title) - _lang = ReadWriteAttribute(jsObject: jsObject, name: Strings.lang) - _translate = ReadWriteAttribute(jsObject: jsObject, name: Strings.translate) - _dir = ReadWriteAttribute(jsObject: jsObject, name: Strings.dir) - _hidden = ReadWriteAttribute(jsObject: jsObject, name: Strings.hidden) - _inert = ReadWriteAttribute(jsObject: jsObject, name: Strings.inert) - _accessKey = ReadWriteAttribute(jsObject: jsObject, name: Strings.accessKey) - _accessKeyLabel = ReadonlyAttribute(jsObject: jsObject, name: Strings.accessKeyLabel) - _draggable = ReadWriteAttribute(jsObject: jsObject, name: Strings.draggable) - _spellcheck = ReadWriteAttribute(jsObject: jsObject, name: Strings.spellcheck) - _autocapitalize = ReadWriteAttribute(jsObject: jsObject, name: Strings.autocapitalize) - _innerText = ReadWriteAttribute(jsObject: jsObject, name: Strings.innerText) - _outerText = ReadWriteAttribute(jsObject: jsObject, name: Strings.outerText) - _offsetParent = ReadonlyAttribute(jsObject: jsObject, name: Strings.offsetParent) - _offsetTop = ReadonlyAttribute(jsObject: jsObject, name: Strings.offsetTop) - _offsetLeft = ReadonlyAttribute(jsObject: jsObject, name: Strings.offsetLeft) - _offsetWidth = ReadonlyAttribute(jsObject: jsObject, name: Strings.offsetWidth) - _offsetHeight = ReadonlyAttribute(jsObject: jsObject, name: Strings.offsetHeight) + _value = ReadWriteAttribute(jsObject: jsObject, name: Strings.value) + _min = ReadWriteAttribute(jsObject: jsObject, name: Strings.min) + _max = ReadWriteAttribute(jsObject: jsObject, name: Strings.max) + _low = ReadWriteAttribute(jsObject: jsObject, name: Strings.low) + _high = ReadWriteAttribute(jsObject: jsObject, name: Strings.high) + _optimum = ReadWriteAttribute(jsObject: jsObject, name: Strings.optimum) + _labels = ReadonlyAttribute(jsObject: jsObject, name: Strings.labels) super.init(unsafelyWrapping: jsObject) } @@ -9399,9 +9356,9 @@ public class HTMLMeterElement: HTMLElement { } @ReadWriteAttribute + public var value: Double @ReadWriteAttribute - public var value: Double public var min: Double @ReadWriteAttribute @@ -9437,48 +9394,7 @@ public class HTMLModElement: HTMLElement { public var cite: String @ReadWriteAttribute - public var outerText: String - - @ReadWriteAttribute - public var name: String - @inlinable public func attachInternals() -> ElementInternals { - let this = jsObject - return this[Strings.attachInternals].function!(this: this, arguments: []).fromJSValue()! - } - - @ReadonlyAttribute - public var sandbox: DOMTokenList - - @ReadWriteAttribute - public var allow: String - - @ReadWriteAttribute - public var allowFullscreen: Bool - - @ReadWriteAttribute - public var width: String - - @ReadWriteAttribute - public var height: String - public var offsetParent: Element? - - @ReadWriteAttribute - public var referrerPolicy: String - @ReadonlyAttribute - public var offsetTop: Int32 - - @ReadWriteAttribute - public var loading: String - @ReadonlyAttribute - public var offsetLeft: Int32 - - @ReadonlyAttribute - public var contentDocument: Document? - public var offsetWidth: Int32 - - @ReadonlyAttribute - public var contentWindow: WindowProxy? - public var offsetHeight: Int32 + public var dateTime: String } public class HTMLOListElement: HTMLElement { @@ -9950,22 +9866,10 @@ public class HTMLScriptElement: HTMLElement { _text = ReadWriteAttribute(jsObject: jsObject, name: Strings.text) _integrity = ReadWriteAttribute(jsObject: jsObject, name: Strings.integrity) _referrerPolicy = ReadWriteAttribute(jsObject: jsObject, name: Strings.referrerPolicy) - _decoding = ReadWriteAttribute(jsObject: jsObject, name: Strings.decoding) - _loading = ReadWriteAttribute(jsObject: jsObject, name: Strings.loading) - _name = ReadWriteAttribute(jsObject: jsObject, name: Strings.name) - _lowsrc = ReadWriteAttribute(jsObject: jsObject, name: Strings.lowsrc) - _align = ReadWriteAttribute(jsObject: jsObject, name: Strings.align) - _hspace = ReadWriteAttribute(jsObject: jsObject, name: Strings.hspace) - _loop = ReadWriteAttribute(jsObject: jsObject, name: Strings.loop) - _scrollAmount = ReadWriteAttribute(jsObject: jsObject, name: Strings.scrollAmount) - _scrollDelay = ReadWriteAttribute(jsObject: jsObject, name: Strings.scrollDelay) - _trueSpeed = ReadWriteAttribute(jsObject: jsObject, name: Strings.trueSpeed) - _vspace = ReadWriteAttribute(jsObject: jsObject, name: Strings.vspace) - _width = ReadWriteAttribute(jsObject: jsObject, name: Strings.width) - _longDesc = ReadWriteAttribute(jsObject: jsObject, name: Strings.longDesc) - _border = ReadWriteAttribute(jsObject: jsObject, name: Strings.border) - _x = ReadonlyAttribute(jsObject: jsObject, name: Strings.x) - _y = ReadonlyAttribute(jsObject: jsObject, name: Strings.y) + _blocking = ReadonlyAttribute(jsObject: jsObject, name: Strings.blocking) + _charset = ReadWriteAttribute(jsObject: jsObject, name: Strings.charset) + _event = ReadWriteAttribute(jsObject: jsObject, name: Strings.event) + _htmlFor = ReadWriteAttribute(jsObject: jsObject, name: Strings.htmlFor) super.init(unsafelyWrapping: jsObject) } @@ -10015,35 +9919,7 @@ public class HTMLScriptElement: HTMLElement { public var event: String @ReadWriteAttribute - public var border: String - - @ReadonlyAttribute - public var buffered: TimeRanges - - @inlinable public func load() { - let this = jsObject - _ = this[Strings.load].function!(this: this, arguments: []) - } - - @inlinable public func canPlayType(type: String) -> CanPlayTypeResult { - let this = jsObject - return this[Strings.canPlayType].function!(this: this, arguments: [type.jsValue]).fromJSValue()! - } - - public static let HAVE_NOTHING: UInt16 = 0 - - public static let HAVE_METADATA: UInt16 = 1 - - public static let HAVE_CURRENT_DATA: UInt16 = 2 - - public static let HAVE_FUTURE_DATA: UInt16 = 3 - - public static let HAVE_ENOUGH_DATA: UInt16 = 4 - public var x: Int32 - - @ReadonlyAttribute - public var readyState: UInt16 - public var y: Int32 + public var htmlFor: String } public class HTMLSelectElement: HTMLElement { @@ -11346,8 +11222,20 @@ public class InputEventInit: BridgedDictionary { @ReadWriteAttribute public var isComposing: Bool - @ReadWriteAttribute - public var inputType: String + @ReadWriteAttribute + public var inputType: String +} + +public class IsVisibleOptions: BridgedDictionary { + public convenience init() { + let object = JSObject.global[Strings.Object].function!.new() + + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + super.init(unsafelyWrapping: object) + } } public class KeyboardEvent: UIEvent { @@ -11774,6 +11662,71 @@ public class MediaError: JSBridgedClass { public var message: String } +public class MediaQueryList: EventTarget { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.MediaQueryList].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _media = ReadonlyAttribute(jsObject: jsObject, name: Strings.media) + _matches = ReadonlyAttribute(jsObject: jsObject, name: Strings.matches) + _onchange = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onchange) + super.init(unsafelyWrapping: jsObject) + } + + @ReadonlyAttribute + public var media: String + + @ReadonlyAttribute + public var matches: Bool + + // XXX: member 'addListener' is ignored + + // XXX: member 'removeListener' is ignored + + @ClosureAttribute1Optional + public var onchange: EventHandler +} + +public class MediaQueryListEvent: Event { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.MediaQueryListEvent].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _media = ReadonlyAttribute(jsObject: jsObject, name: Strings.media) + _matches = ReadonlyAttribute(jsObject: jsObject, name: Strings.matches) + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(type: String, eventInitDict: MediaQueryListEventInit? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined])) + } + + @ReadonlyAttribute + public var media: String + + @ReadonlyAttribute + public var matches: Bool +} + +public class MediaQueryListEventInit: BridgedDictionary { + public convenience init(media: String, matches: Bool) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.media] = media.jsValue + object[Strings.matches] = matches.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _media = ReadWriteAttribute(jsObject: object, name: Strings.media) + _matches = ReadWriteAttribute(jsObject: object, name: Strings.matches) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var media: String + + @ReadWriteAttribute + public var matches: Bool +} + public class MediaStream: EventTarget { @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.MediaStream].function! } @@ -12620,20 +12573,8 @@ public class MimeTypeArray: JSBridgedClass { } } -public class IsVisibleOptions: BridgedDictionary { - public convenience init() { - let object = JSObject.global[Strings.Object].function!.new() - - self.init(unsafelyWrapping: object) - } - - public required init(unsafelyWrapping object: JSObject) { - super.init(unsafelyWrapping: object) - } -} - -public class KeyboardEvent: UIEvent { - @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.KeyboardEvent].function! } +public class MouseEvent: UIEvent { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.MouseEvent].function! } public required init(unsafelyWrapping jsObject: JSObject) { _screenX = ReadonlyAttribute(jsObject: jsObject, name: Strings.screenX) @@ -12647,6 +12588,12 @@ public class KeyboardEvent: UIEvent { _button = ReadonlyAttribute(jsObject: jsObject, name: Strings.button) _buttons = ReadonlyAttribute(jsObject: jsObject, name: Strings.buttons) _relatedTarget = ReadonlyAttribute(jsObject: jsObject, name: Strings.relatedTarget) + _pageX = ReadonlyAttribute(jsObject: jsObject, name: Strings.pageX) + _pageY = ReadonlyAttribute(jsObject: jsObject, name: Strings.pageY) + _x = ReadonlyAttribute(jsObject: jsObject, name: Strings.x) + _y = ReadonlyAttribute(jsObject: jsObject, name: Strings.y) + _offsetX = ReadonlyAttribute(jsObject: jsObject, name: Strings.offsetX) + _offsetY = ReadonlyAttribute(jsObject: jsObject, name: Strings.offsetY) super.init(unsafelyWrapping: jsObject) } @@ -12711,6 +12658,24 @@ public class KeyboardEvent: UIEvent { let this = jsObject _ = this[Strings.initMouseEvent].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, _arg11, _arg12, _arg13, _arg14]) } + + @ReadonlyAttribute + public var pageX: Double + + @ReadonlyAttribute + public var pageY: Double + + @ReadonlyAttribute + public var x: Double + + @ReadonlyAttribute + public var y: Double + + @ReadonlyAttribute + public var offsetX: Double + + @ReadonlyAttribute + public var offsetY: Double } public class MouseEventInit: BridgedDictionary { @@ -12822,73 +12787,8 @@ public class MutationEvent: Event { } } -public class MediaQueryList: EventTarget { - @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.MediaQueryList].function! } - - public required init(unsafelyWrapping jsObject: JSObject) { - _media = ReadonlyAttribute(jsObject: jsObject, name: Strings.media) - _matches = ReadonlyAttribute(jsObject: jsObject, name: Strings.matches) - _onchange = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onchange) - super.init(unsafelyWrapping: jsObject) - } - - @ReadonlyAttribute - public var media: String - - @ReadonlyAttribute - public var matches: Bool - - // XXX: member 'addListener' is ignored - - // XXX: member 'removeListener' is ignored - - @ClosureAttribute1Optional - public var onchange: EventHandler -} - -public class MediaQueryListEvent: Event { - @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.MediaQueryListEvent].function! } - - public required init(unsafelyWrapping jsObject: JSObject) { - _media = ReadonlyAttribute(jsObject: jsObject, name: Strings.media) - _matches = ReadonlyAttribute(jsObject: jsObject, name: Strings.matches) - super.init(unsafelyWrapping: jsObject) - } - - @inlinable public convenience init(type: String, eventInitDict: MediaQueryListEventInit? = nil) { - self.init(unsafelyWrapping: Self.constructor.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined])) - } - - @ReadonlyAttribute - public var media: String - - @ReadonlyAttribute - public var matches: Bool -} - -public class MediaQueryListEventInit: BridgedDictionary { - public convenience init(media: String, matches: Bool) { - let object = JSObject.global[Strings.Object].function!.new() - object[Strings.media] = media.jsValue - object[Strings.matches] = matches.jsValue - self.init(unsafelyWrapping: object) - } - - public required init(unsafelyWrapping object: JSObject) { - _media = ReadWriteAttribute(jsObject: object, name: Strings.media) - _matches = ReadWriteAttribute(jsObject: object, name: Strings.matches) - super.init(unsafelyWrapping: object) - } - - @ReadWriteAttribute - public var media: String - - @ReadWriteAttribute - public var matches: Bool -} - -public class MessageChannel: JSBridgedClass { - @inlinable public class var constructor: JSFunction { JSObject.global[Strings.MessageChannel].function! } +public class MutationObserver: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.MutationObserver].function! } public let jsObject: JSObject @@ -13032,25 +12932,9 @@ public class NamedNodeMap: JSBridgedClass { return this[Strings.getNamedItemNS].function!(this: this, arguments: [namespace.jsValue, localName.jsValue]).fromJSValue()! } - public required init(unsafelyWrapping jsObject: JSObject) { - _screenX = ReadonlyAttribute(jsObject: jsObject, name: Strings.screenX) - _screenY = ReadonlyAttribute(jsObject: jsObject, name: Strings.screenY) - _clientX = ReadonlyAttribute(jsObject: jsObject, name: Strings.clientX) - _clientY = ReadonlyAttribute(jsObject: jsObject, name: Strings.clientY) - _ctrlKey = ReadonlyAttribute(jsObject: jsObject, name: Strings.ctrlKey) - _shiftKey = ReadonlyAttribute(jsObject: jsObject, name: Strings.shiftKey) - _altKey = ReadonlyAttribute(jsObject: jsObject, name: Strings.altKey) - _metaKey = ReadonlyAttribute(jsObject: jsObject, name: Strings.metaKey) - _button = ReadonlyAttribute(jsObject: jsObject, name: Strings.button) - _buttons = ReadonlyAttribute(jsObject: jsObject, name: Strings.buttons) - _relatedTarget = ReadonlyAttribute(jsObject: jsObject, name: Strings.relatedTarget) - _pageX = ReadonlyAttribute(jsObject: jsObject, name: Strings.pageX) - _pageY = ReadonlyAttribute(jsObject: jsObject, name: Strings.pageY) - _x = ReadonlyAttribute(jsObject: jsObject, name: Strings.x) - _y = ReadonlyAttribute(jsObject: jsObject, name: Strings.y) - _offsetX = ReadonlyAttribute(jsObject: jsObject, name: Strings.offsetX) - _offsetY = ReadonlyAttribute(jsObject: jsObject, name: Strings.offsetY) - super.init(unsafelyWrapping: jsObject) + @inlinable public func setNamedItem(attr: Attr) -> Attr? { + let this = jsObject + return this[Strings.setNamedItem].function!(this: this, arguments: [attr.jsValue]).fromJSValue()! } @inlinable public func setNamedItemNS(attr: Attr) -> Attr? { @@ -13125,24 +13009,6 @@ public class NavigationPreloadManager: JSBridgedClass { let _promise: JSPromise = this[Strings.getState].function!(this: this, arguments: []).fromJSValue()! return try await _promise.value.fromJSValue()! } - - @ReadonlyAttribute - public var pageX: Double - - @ReadonlyAttribute - public var pageY: Double - - @ReadonlyAttribute - public var x: Double - - @ReadonlyAttribute - public var y: Double - - @ReadonlyAttribute - public var offsetX: Double - - @ReadonlyAttribute - public var offsetY: Double } public class NavigationPreloadState: BridgedDictionary { @@ -15509,6 +15375,22 @@ public class Screen: JSBridgedClass { public var pixelDepth: UInt32 } +public class ScriptProcessorNode: AudioNode { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.ScriptProcessorNode].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _onaudioprocess = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onaudioprocess) + _bufferSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.bufferSize) + super.init(unsafelyWrapping: jsObject) + } + + @ClosureAttribute1Optional + public var onaudioprocess: EventHandler + + @ReadonlyAttribute + public var bufferSize: Int32 +} + public enum ScrollBehavior: JSString, JSValueCompatible { case auto = "auto" case smooth = "smooth" @@ -19112,6 +18994,8 @@ public enum console { @usableFromInline static let CanvasPattern: JSString = "CanvasPattern" @usableFromInline static let CanvasRenderingContext2D: JSString = "CanvasRenderingContext2D" @usableFromInline static let CaretPosition: JSString = "CaretPosition" + @usableFromInline static let ChannelMergerNode: JSString = "ChannelMergerNode" + @usableFromInline static let ChannelSplitterNode: JSString = "ChannelSplitterNode" @usableFromInline static let CharacterData: JSString = "CharacterData" @usableFromInline static let Comment: JSString = "Comment" @usableFromInline static let CompositionEvent: JSString = "CompositionEvent" @@ -19252,6 +19136,12 @@ public enum console { @usableFromInline static let MediaError: JSString = "MediaError" @usableFromInline static let MediaQueryList: JSString = "MediaQueryList" @usableFromInline static let MediaQueryListEvent: JSString = "MediaQueryListEvent" + @usableFromInline static let MediaStream: JSString = "MediaStream" + @usableFromInline static let MediaStreamAudioDestinationNode: JSString = "MediaStreamAudioDestinationNode" + @usableFromInline static let MediaStreamAudioSourceNode: JSString = "MediaStreamAudioSourceNode" + @usableFromInline static let MediaStreamTrack: JSString = "MediaStreamTrack" + @usableFromInline static let MediaStreamTrackAudioSourceNode: JSString = "MediaStreamTrackAudioSourceNode" + @usableFromInline static let MediaStreamTrackEvent: JSString = "MediaStreamTrackEvent" @usableFromInline static let MessageChannel: JSString = "MessageChannel" @usableFromInline static let MessageEvent: JSString = "MessageEvent" @usableFromInline static let MessagePort: JSString = "MessagePort" @@ -19297,6 +19187,7 @@ public enum console { @usableFromInline static let Request: JSString = "Request" @usableFromInline static let Response: JSString = "Response" @usableFromInline static let Screen: JSString = "Screen" + @usableFromInline static let ScriptProcessorNode: JSString = "ScriptProcessorNode" @usableFromInline static let ServiceWorker: JSString = "ServiceWorker" @usableFromInline static let ServiceWorkerContainer: JSString = "ServiceWorkerContainer" @usableFromInline static let ServiceWorkerRegistration: JSString = "ServiceWorkerRegistration" @@ -19715,6 +19606,8 @@ public enum console { @usableFromInline static let desynchronized: JSString = "desynchronized" @usableFromInline static let detach: JSString = "detach" @usableFromInline static let detail: JSString = "detail" + @usableFromInline static let detune: JSString = "detune" + @usableFromInline static let deviceId: JSString = "deviceId" @usableFromInline static let devicePixelRatio: JSString = "devicePixelRatio" @usableFromInline static let dir: JSString = "dir" @usableFromInline static let dirName: JSString = "dirName" @@ -19824,6 +19717,8 @@ public enum console { @usableFromInline static let frameElement: JSString = "frameElement" @usableFromInline static let frameRate: JSString = "frameRate" @usableFromInline static let frames: JSString = "frames" + @usableFromInline static let frequency: JSString = "frequency" + @usableFromInline static let frequencyBinCount: JSString = "frequencyBinCount" @usableFromInline static let fromBox: JSString = "fromBox" @usableFromInline static let fromFloat32Array: JSString = "fromFloat32Array" @usableFromInline static let fromFloat64Array: JSString = "fromFloat64Array" @@ -19842,9 +19737,14 @@ public enum console { @usableFromInline static let getAttributeNames: JSString = "getAttributeNames" @usableFromInline static let getAttributeNode: JSString = "getAttributeNode" @usableFromInline static let getAttributeNodeNS: JSString = "getAttributeNodeNS" + @usableFromInline static let getAudioTracks: JSString = "getAudioTracks" @usableFromInline static let getBoundingClientRect: JSString = "getBoundingClientRect" @usableFromInline static let getBounds: JSString = "getBounds" @usableFromInline static let getBoxQuads: JSString = "getBoxQuads" + @usableFromInline static let getByteFrequencyData: JSString = "getByteFrequencyData" + @usableFromInline static let getByteTimeDomainData: JSString = "getByteTimeDomainData" + @usableFromInline static let getCapabilities: JSString = "getCapabilities" + @usableFromInline static let getChannelData: JSString = "getChannelData" @usableFromInline static let getClientRect: JSString = "getClientRect" @usableFromInline static let getClientRects: JSString = "getClientRects" @usableFromInline static let getComputedTiming: JSString = "getComputedTiming" @@ -19953,6 +19853,7 @@ public enum console { @usableFromInline static let innerHeight: JSString = "innerHeight" @usableFromInline static let innerText: JSString = "innerText" @usableFromInline static let innerWidth: JSString = "innerWidth" + @usableFromInline static let inputBuffer: JSString = "inputBuffer" @usableFromInline static let inputEncoding: JSString = "inputEncoding" @usableFromInline static let inputMode: JSString = "inputMode" @usableFromInline static let inputType: JSString = "inputType" @@ -20274,6 +20175,9 @@ public enum console { @usableFromInline static let outerHeight: JSString = "outerHeight" @usableFromInline static let outerText: JSString = "outerText" @usableFromInline static let outerWidth: JSString = "outerWidth" + @usableFromInline static let outputBuffer: JSString = "outputBuffer" + @usableFromInline static let outputChannelCount: JSString = "outputChannelCount" + @usableFromInline static let outputLatency: JSString = "outputLatency" @usableFromInline static let overrideMimeType: JSString = "overrideMimeType" @usableFromInline static let oversample: JSString = "oversample" @usableFromInline static let ownerDocument: JSString = "ownerDocument" @@ -20286,6 +20190,11 @@ public enum console { @usableFromInline static let pageXOffset: JSString = "pageXOffset" @usableFromInline static let pageY: JSString = "pageY" @usableFromInline static let pageYOffset: JSString = "pageYOffset" + @usableFromInline static let pan: JSString = "pan" + @usableFromInline static let panTiltZoom: JSString = "panTiltZoom" + @usableFromInline static let panningModel: JSString = "panningModel" + @usableFromInline static let parameterData: JSString = "parameterData" + @usableFromInline static let parameters: JSString = "parameters" @usableFromInline static let parent: JSString = "parent" @usableFromInline static let parentElement: JSString = "parentElement" @usableFromInline static let parentNode: JSString = "parentNode" @@ -20402,6 +20311,7 @@ public enum console { @usableFromInline static let relatedNode: JSString = "relatedNode" @usableFromInline static let relatedTarget: JSString = "relatedTarget" @usableFromInline static let relativeTo: JSString = "relativeTo" + @usableFromInline static let release: JSString = "release" @usableFromInline static let releaseEvents: JSString = "releaseEvents" @usableFromInline static let releaseLock: JSString = "releaseLock" @usableFromInline static let reload: JSString = "reload" @@ -20944,6 +20854,48 @@ public enum BlobPart: JSValueCompatible, Any_BlobPart { } } +public protocol Any_Bool_or_MediaTrackConstraints: ConvertibleToJSValue {} +extension Bool: Any_Bool_or_MediaTrackConstraints {} +extension MediaTrackConstraints: Any_Bool_or_MediaTrackConstraints {} + +public enum Bool_or_MediaTrackConstraints: JSValueCompatible, Any_Bool_or_MediaTrackConstraints { + case bool(Bool) + case mediaTrackConstraints(MediaTrackConstraints) + + var bool: Bool? { + switch self { + case let .bool(bool): return bool + default: return nil + } + } + + var mediaTrackConstraints: MediaTrackConstraints? { + switch self { + case let .mediaTrackConstraints(mediaTrackConstraints): return mediaTrackConstraints + default: return nil + } + } + + public static func construct(from value: JSValue) -> Self? { + if let bool: Bool = value.fromJSValue() { + return .bool(bool) + } + if let mediaTrackConstraints: MediaTrackConstraints = value.fromJSValue() { + return .mediaTrackConstraints(mediaTrackConstraints) + } + return nil + } + + public var jsValue: JSValue { + switch self { + case let .bool(bool): + return bool.jsValue + case let .mediaTrackConstraints(mediaTrackConstraints): + return mediaTrackConstraints.jsValue + } + } +} + public protocol Any_Bool_or_ScrollIntoViewOptions: ConvertibleToJSValue {} extension Bool: Any_Bool_or_ScrollIntoViewOptions {} extension ScrollIntoViewOptions: Any_Bool_or_ScrollIntoViewOptions {}