diff --git a/Sources/DOMKit/CanvasImageSource.swift b/Sources/DOMKit/CanvasImageSource.swift deleted file mode 100644 index 9c93d9b6..00000000 --- a/Sources/DOMKit/CanvasImageSource.swift +++ /dev/null @@ -1,102 +0,0 @@ -// This file was auto-generated by WebIDLToSwift. DO NOT EDIT! - -import JavaScriptEventLoop -import JavaScriptKit - -public protocol Any_CanvasImageSource: ConvertibleToJSValue {} -extension HTMLCanvasElement: Any_CanvasImageSource {} -extension HTMLOrSVGImageElement: Any_CanvasImageSource {} -extension HTMLVideoElement: Any_CanvasImageSource {} -extension ImageBitmap: Any_CanvasImageSource {} -extension OffscreenCanvas: Any_CanvasImageSource {} -//extension VideoFrame: Any_CanvasImageSource {} - -public enum CanvasImageSource: JSValueCompatible, Any_CanvasImageSource { - case htmlCanvasElement(HTMLCanvasElement) - case htmlOrSVGImageElement(HTMLOrSVGImageElement) - case htmlVideoElement(HTMLVideoElement) - case imageBitmap(ImageBitmap) - case offscreenCanvas(OffscreenCanvas) -// case videoFrame(VideoFrame) - - var htmlCanvasElement: HTMLCanvasElement? { - switch self { - case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement - default: return nil - } - } - - var htmlOrSVGImageElement: HTMLOrSVGImageElement? { - switch self { - case let .htmlOrSVGImageElement(htmlOrSVGImageElement): return htmlOrSVGImageElement - default: return nil - } - } - - var htmlVideoElement: HTMLVideoElement? { - switch self { - case let .htmlVideoElement(htmlVideoElement): return htmlVideoElement - default: return nil - } - } - - var imageBitmap: ImageBitmap? { - switch self { - case let .imageBitmap(imageBitmap): return imageBitmap - default: return nil - } - } - - var offscreenCanvas: OffscreenCanvas? { - switch self { - case let .offscreenCanvas(offscreenCanvas): return offscreenCanvas - default: return nil - } - } - -// var videoFrame: VideoFrame? { -// switch self { -// case let .videoFrame(videoFrame): return videoFrame -// default: return nil -// } -// } - - public static func construct(from value: JSValue) -> Self? { - if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() { - return .htmlCanvasElement(htmlCanvasElement) - } - if let htmlOrSVGImageElement: HTMLOrSVGImageElement = value.fromJSValue() { - return .htmlOrSVGImageElement(htmlOrSVGImageElement) - } - if let htmlVideoElement: HTMLVideoElement = value.fromJSValue() { - return .htmlVideoElement(htmlVideoElement) - } - if let imageBitmap: ImageBitmap = value.fromJSValue() { - return .imageBitmap(imageBitmap) - } - if let offscreenCanvas: OffscreenCanvas = value.fromJSValue() { - return .offscreenCanvas(offscreenCanvas) - } -// if let videoFrame: VideoFrame = value.fromJSValue() { -// return .videoFrame(videoFrame) -// } - return nil - } - - public var jsValue: JSValue { - switch self { - case let .htmlCanvasElement(htmlCanvasElement): - return htmlCanvasElement.jsValue - case let .htmlOrSVGImageElement(htmlOrSVGImageElement): - return htmlOrSVGImageElement.jsValue - case let .htmlVideoElement(htmlVideoElement): - return htmlVideoElement.jsValue - case let .imageBitmap(imageBitmap): - return imageBitmap.jsValue - case let .offscreenCanvas(offscreenCanvas): - return offscreenCanvas.jsValue -// case let .videoFrame(videoFrame): -// return videoFrame.jsValue - } - } -} diff --git a/Sources/DOMKit/Generated.swift b/Sources/DOMKit/Generated.swift index 90ffe959..abc60ebe 100644 --- a/Sources/DOMKit/Generated.swift +++ b/Sources/DOMKit/Generated.swift @@ -333,6 +333,24 @@ public class AddEventListenerOptions: BridgedDictionary { public var signal: AbortSignal } +public enum AlphaOption: JSString, JSValueCompatible { + case keep = "keep" + case discard = "discard" + + @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 AnalyserNode: AudioNode { @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.AnalyserNode].function! } @@ -963,875 +981,763 @@ public enum AudioContextState: JSString, JSValueCompatible { @inlinable public var jsValue: JSValue { rawValue.jsValue } } -public class AudioDestinationNode: AudioNode { - @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.AudioDestinationNode].function! } - - public required init(unsafelyWrapping jsObject: JSObject) { - _maxChannelCount = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxChannelCount) - super.init(unsafelyWrapping: jsObject) - } - - @ReadonlyAttribute - public var maxChannelCount: UInt32 -} - -public class AudioListener: JSBridgedClass { - @inlinable public class var constructor: JSFunction { JSObject.global[Strings.AudioListener].function! } +public class AudioData: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.AudioData].function! } public let jsObject: JSObject public required init(unsafelyWrapping jsObject: JSObject) { - _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) + _format = ReadonlyAttribute(jsObject: jsObject, name: Strings.format) + _sampleRate = ReadonlyAttribute(jsObject: jsObject, name: Strings.sampleRate) + _numberOfFrames = ReadonlyAttribute(jsObject: jsObject, name: Strings.numberOfFrames) + _numberOfChannels = ReadonlyAttribute(jsObject: jsObject, name: Strings.numberOfChannels) + _duration = ReadonlyAttribute(jsObject: jsObject, name: Strings.duration) + _timestamp = ReadonlyAttribute(jsObject: jsObject, name: Strings.timestamp) self.jsObject = jsObject } - @ReadonlyAttribute - public var positionX: AudioParam - - @ReadonlyAttribute - public var positionY: AudioParam - - @ReadonlyAttribute - public var positionZ: AudioParam + @inlinable public convenience init(init: AudioDataInit) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [`init`.jsValue])) + } @ReadonlyAttribute - public var forwardX: AudioParam + public var format: AudioSampleFormat? @ReadonlyAttribute - public var forwardY: AudioParam + public var sampleRate: Float @ReadonlyAttribute - public var forwardZ: AudioParam + public var numberOfFrames: UInt32 @ReadonlyAttribute - public var upX: AudioParam + public var numberOfChannels: UInt32 @ReadonlyAttribute - public var upY: AudioParam + public var duration: UInt64 @ReadonlyAttribute - public var upZ: AudioParam - - @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]) - } + public var timestamp: Int64 - @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 - _ = this[Strings.setOrientation].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5]) - } -} - -public class AudioNode: EventTarget { - @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.AudioNode].function! } - - 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) - } - - @inlinable public func connect(destinationNode: AudioNode, output: UInt32? = nil, input: UInt32? = nil) -> Self { - let this = jsObject - return this[Strings.connect].function!(this: this, arguments: [destinationNode.jsValue, output?.jsValue ?? .undefined, input?.jsValue ?? .undefined]).fromJSValue()! - } - - @inlinable public func connect(destinationParam: AudioParam, output: UInt32? = nil) { - let this = jsObject - _ = this[Strings.connect].function!(this: this, arguments: [destinationParam.jsValue, output?.jsValue ?? .undefined]) - } - - @inlinable public func disconnect() { - let this = jsObject - _ = this[Strings.disconnect].function!(this: this, arguments: []) - } - - @inlinable public func disconnect(output: UInt32) { + @inlinable public func allocationSize(options: AudioDataCopyToOptions) -> UInt32 { let this = jsObject - _ = this[Strings.disconnect].function!(this: this, arguments: [output.jsValue]) + return this[Strings.allocationSize].function!(this: this, arguments: [options.jsValue]).fromJSValue()! } - @inlinable public func disconnect(destinationNode: AudioNode) { + @inlinable public func copyTo(destination: BufferSource, options: AudioDataCopyToOptions) { let this = jsObject - _ = this[Strings.disconnect].function!(this: this, arguments: [destinationNode.jsValue]) + _ = this[Strings.copyTo].function!(this: this, arguments: [destination.jsValue, options.jsValue]) } - @inlinable public func disconnect(destinationNode: AudioNode, output: UInt32) { + @inlinable public func clone() -> Self { let this = jsObject - _ = this[Strings.disconnect].function!(this: this, arguments: [destinationNode.jsValue, output.jsValue]) + return this[Strings.clone].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func disconnect(destinationNode: AudioNode, output: UInt32, input: UInt32) { + @inlinable public func close() { let this = jsObject - _ = this[Strings.disconnect].function!(this: this, arguments: [destinationNode.jsValue, output.jsValue, input.jsValue]) + _ = this[Strings.close].function!(this: this, arguments: []) } +} - @inlinable public func disconnect(destinationParam: AudioParam) { - let this = jsObject - _ = this[Strings.disconnect].function!(this: this, arguments: [destinationParam.jsValue]) +public class AudioDataCopyToOptions: BridgedDictionary { + public convenience init(planeIndex: UInt32, frameOffset: UInt32, frameCount: UInt32, format: AudioSampleFormat) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.planeIndex] = planeIndex.jsValue + object[Strings.frameOffset] = frameOffset.jsValue + object[Strings.frameCount] = frameCount.jsValue + object[Strings.format] = format.jsValue + self.init(unsafelyWrapping: object) } - @inlinable public func disconnect(destinationParam: AudioParam, output: UInt32) { - let this = jsObject - _ = this[Strings.disconnect].function!(this: this, arguments: [destinationParam.jsValue, output.jsValue]) + public required init(unsafelyWrapping object: JSObject) { + _planeIndex = ReadWriteAttribute(jsObject: object, name: Strings.planeIndex) + _frameOffset = ReadWriteAttribute(jsObject: object, name: Strings.frameOffset) + _frameCount = ReadWriteAttribute(jsObject: object, name: Strings.frameCount) + _format = ReadWriteAttribute(jsObject: object, name: Strings.format) + super.init(unsafelyWrapping: object) } - @ReadonlyAttribute - public var context: BaseAudioContext - - @ReadonlyAttribute - public var numberOfInputs: UInt32 - - @ReadonlyAttribute - public var numberOfOutputs: UInt32 + @ReadWriteAttribute + public var planeIndex: UInt32 @ReadWriteAttribute - public var channelCount: UInt32 + public var frameOffset: UInt32 @ReadWriteAttribute - public var channelCountMode: ChannelCountMode + public var frameCount: UInt32 @ReadWriteAttribute - public var channelInterpretation: ChannelInterpretation + public var format: AudioSampleFormat } -public class AudioNodeOptions: BridgedDictionary { - public convenience init(channelCount: UInt32, channelCountMode: ChannelCountMode, channelInterpretation: ChannelInterpretation) { +public class AudioDataInit: BridgedDictionary { + public convenience init(format: AudioSampleFormat, sampleRate: Float, numberOfFrames: UInt32, numberOfChannels: UInt32, timestamp: Int64, data: BufferSource) { let object = JSObject.global[Strings.Object].function!.new() - object[Strings.channelCount] = channelCount.jsValue - object[Strings.channelCountMode] = channelCountMode.jsValue - object[Strings.channelInterpretation] = channelInterpretation.jsValue + object[Strings.format] = format.jsValue + object[Strings.sampleRate] = sampleRate.jsValue + object[Strings.numberOfFrames] = numberOfFrames.jsValue + object[Strings.numberOfChannels] = numberOfChannels.jsValue + object[Strings.timestamp] = timestamp.jsValue + object[Strings.data] = data.jsValue self.init(unsafelyWrapping: object) } public required init(unsafelyWrapping object: JSObject) { - _channelCount = ReadWriteAttribute(jsObject: object, name: Strings.channelCount) - _channelCountMode = ReadWriteAttribute(jsObject: object, name: Strings.channelCountMode) - _channelInterpretation = ReadWriteAttribute(jsObject: object, name: Strings.channelInterpretation) + _format = ReadWriteAttribute(jsObject: object, name: Strings.format) + _sampleRate = ReadWriteAttribute(jsObject: object, name: Strings.sampleRate) + _numberOfFrames = ReadWriteAttribute(jsObject: object, name: Strings.numberOfFrames) + _numberOfChannels = ReadWriteAttribute(jsObject: object, name: Strings.numberOfChannels) + _timestamp = ReadWriteAttribute(jsObject: object, name: Strings.timestamp) + _data = ReadWriteAttribute(jsObject: object, name: Strings.data) super.init(unsafelyWrapping: object) } @ReadWriteAttribute - public var channelCount: UInt32 + public var format: AudioSampleFormat @ReadWriteAttribute - public var channelCountMode: ChannelCountMode + public var sampleRate: Float @ReadWriteAttribute - public var channelInterpretation: ChannelInterpretation + public var numberOfFrames: UInt32 + + @ReadWriteAttribute + public var numberOfChannels: UInt32 + + @ReadWriteAttribute + public var timestamp: Int64 + + @ReadWriteAttribute + public var data: BufferSource } -public class AudioParam: JSBridgedClass { - @inlinable public class var constructor: JSFunction { JSObject.global[Strings.AudioParam].function! } +public class AudioDecoder: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.AudioDecoder].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) + _state = ReadonlyAttribute(jsObject: jsObject, name: Strings.state) + _decodeQueueSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.decodeQueueSize) self.jsObject = jsObject } - @ReadWriteAttribute - public var value: Float - - @ReadWriteAttribute - public var automationRate: AutomationRate - - @ReadonlyAttribute - public var defaultValue: Float + @inlinable public convenience init(init: AudioDecoderInit) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [`init`.jsValue])) + } @ReadonlyAttribute - public var minValue: Float + public var state: CodecState @ReadonlyAttribute - public var maxValue: Float + public var decodeQueueSize: UInt32 - @inlinable public func setValueAtTime(value: Float, startTime: Double) -> Self { + @inlinable public func configure(config: AudioDecoderConfig) { let this = jsObject - return this[Strings.setValueAtTime].function!(this: this, arguments: [value.jsValue, startTime.jsValue]).fromJSValue()! + _ = this[Strings.configure].function!(this: this, arguments: [config.jsValue]) } - @inlinable public func linearRampToValueAtTime(value: Float, endTime: Double) -> Self { + @inlinable public func decode(chunk: EncodedAudioChunk) { let this = jsObject - return this[Strings.linearRampToValueAtTime].function!(this: this, arguments: [value.jsValue, endTime.jsValue]).fromJSValue()! + _ = this[Strings.decode].function!(this: this, arguments: [chunk.jsValue]) } - @inlinable public func exponentialRampToValueAtTime(value: Float, endTime: Double) -> Self { + @inlinable public func flush() -> JSPromise { let this = jsObject - return this[Strings.exponentialRampToValueAtTime].function!(this: this, arguments: [value.jsValue, endTime.jsValue]).fromJSValue()! + return this[Strings.flush].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func setTargetAtTime(target: Float, startTime: Double, timeConstant: Float) -> Self { + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public func flush() async throws { let this = jsObject - return this[Strings.setTargetAtTime].function!(this: this, arguments: [target.jsValue, startTime.jsValue, timeConstant.jsValue]).fromJSValue()! + let _promise: JSPromise = this[Strings.flush].function!(this: this, arguments: []).fromJSValue()! + _ = try await _promise.value } - @inlinable public func setValueCurveAtTime(values: [Float], startTime: Double, duration: Double) -> Self { + @inlinable public func reset() { let this = jsObject - return this[Strings.setValueCurveAtTime].function!(this: this, arguments: [values.jsValue, startTime.jsValue, duration.jsValue]).fromJSValue()! + _ = this[Strings.reset].function!(this: this, arguments: []) } - @inlinable public func cancelScheduledValues(cancelTime: Double) -> Self { + @inlinable public func close() { let this = jsObject - return this[Strings.cancelScheduledValues].function!(this: this, arguments: [cancelTime.jsValue]).fromJSValue()! + _ = this[Strings.close].function!(this: this, arguments: []) } - @inlinable public func cancelAndHoldAtTime(cancelTime: Double) -> Self { - let this = jsObject - return this[Strings.cancelAndHoldAtTime].function!(this: this, arguments: [cancelTime.jsValue]).fromJSValue()! + @inlinable public static func isConfigSupported(config: AudioDecoderConfig) -> JSPromise { + let this = constructor + return this[Strings.isConfigSupported].function!(this: this, arguments: [config.jsValue]).fromJSValue()! + } + + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public static func isConfigSupported(config: AudioDecoderConfig) async throws -> AudioDecoderSupport { + let this = constructor + let _promise: JSPromise = this[Strings.isConfigSupported].function!(this: this, arguments: [config.jsValue]).fromJSValue()! + return try await _promise.value.fromJSValue()! } } -public class AudioParamDescriptor: BridgedDictionary { - public convenience init(name: String, defaultValue: Float, minValue: Float, maxValue: Float, automationRate: AutomationRate) { +public class AudioDecoderConfig: BridgedDictionary { + public convenience init(codec: String, sampleRate: UInt32, numberOfChannels: UInt32, description: BufferSource) { let object = JSObject.global[Strings.Object].function!.new() - 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 + object[Strings.codec] = codec.jsValue + object[Strings.sampleRate] = sampleRate.jsValue + object[Strings.numberOfChannels] = numberOfChannels.jsValue + object[Strings.description] = description.jsValue self.init(unsafelyWrapping: object) } public required init(unsafelyWrapping object: JSObject) { - _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) + _codec = ReadWriteAttribute(jsObject: object, name: Strings.codec) + _sampleRate = ReadWriteAttribute(jsObject: object, name: Strings.sampleRate) + _numberOfChannels = ReadWriteAttribute(jsObject: object, name: Strings.numberOfChannels) + _description = ReadWriteAttribute(jsObject: object, name: Strings.description) super.init(unsafelyWrapping: object) } @ReadWriteAttribute - public var name: String - - @ReadWriteAttribute - public var defaultValue: Float + public var codec: String @ReadWriteAttribute - public var minValue: Float + public var sampleRate: UInt32 @ReadWriteAttribute - public var maxValue: Float + public var numberOfChannels: UInt32 @ReadWriteAttribute - public var automationRate: AutomationRate + public var description: BufferSource } -public class AudioParamMap: JSBridgedClass { - @inlinable public class var constructor: JSFunction { JSObject.global[Strings.AudioParamMap].function! } - - public let jsObject: JSObject +public class AudioDecoderInit: BridgedDictionary { + public convenience init(output: @escaping AudioDataOutputCallback, error: @escaping WebCodecsErrorCallback) { + let object = JSObject.global[Strings.Object].function!.new() + ClosureAttribute1Void[Strings.output, in: object] = output + ClosureAttribute1Void[Strings.error, in: object] = error + self.init(unsafelyWrapping: object) + } - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject + public required init(unsafelyWrapping object: JSObject) { + _output = ClosureAttribute1Void(jsObject: object, name: Strings.output) + _error = ClosureAttribute1Void(jsObject: object, name: Strings.error) + super.init(unsafelyWrapping: object) } - // XXX: make me Map-like! + @ClosureAttribute1Void + public var output: AudioDataOutputCallback + + @ClosureAttribute1Void + public var error: WebCodecsErrorCallback } -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 class AudioDecoderSupport: BridgedDictionary { + public convenience init(supported: Bool, config: AudioDecoderConfig) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.supported] = supported.jsValue + object[Strings.config] = config.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) + _supported = ReadWriteAttribute(jsObject: object, name: Strings.supported) + _config = ReadWriteAttribute(jsObject: object, name: Strings.config) super.init(unsafelyWrapping: object) } @ReadWriteAttribute - public var playbackTime: Double - - @ReadWriteAttribute - public var inputBuffer: AudioBuffer + public var supported: Bool @ReadWriteAttribute - public var outputBuffer: AudioBuffer + public var config: AudioDecoderConfig } -public class AudioScheduledSourceNode: AudioNode { - @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.AudioScheduledSourceNode].function! } +public class AudioDestinationNode: AudioNode { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.AudioDestinationNode].function! } public required init(unsafelyWrapping jsObject: JSObject) { - _onended = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onended) + _maxChannelCount = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxChannelCount) 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 + @ReadonlyAttribute + public var maxChannelCount: UInt32 } -public class AudioTrack: JSBridgedClass { - @inlinable public class var constructor: JSFunction { JSObject.global[Strings.AudioTrack].function! } +public class AudioEncoder: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.AudioEncoder].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) + _state = ReadonlyAttribute(jsObject: jsObject, name: Strings.state) + _encodeQueueSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.encodeQueueSize) self.jsObject = jsObject } - @ReadonlyAttribute - public var id: String - - @ReadonlyAttribute - public var kind: String + @inlinable public convenience init(init: AudioEncoderInit) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [`init`.jsValue])) + } @ReadonlyAttribute - public var label: String + public var state: CodecState @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 var encodeQueueSize: UInt32 - 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) + @inlinable public func configure(config: AudioEncoderConfig) { + let this = jsObject + _ = this[Strings.configure].function!(this: this, arguments: [config.jsValue]) } - @ReadonlyAttribute - public var length: UInt32 - - @inlinable public subscript(key: Int) -> AudioTrack { - jsObject[key].fromJSValue()! + @inlinable public func encode(data: AudioData) { + let this = jsObject + _ = this[Strings.encode].function!(this: this, arguments: [data.jsValue]) } - @inlinable public func getTrackById(id: String) -> AudioTrack? { + @inlinable public func flush() -> JSPromise { let this = jsObject - return this[Strings.getTrackById].function!(this: this, arguments: [id.jsValue]).fromJSValue()! + return this[Strings.flush].function!(this: this, arguments: []).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) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public func flush() async throws { + let this = jsObject + let _promise: JSPromise = this[Strings.flush].function!(this: this, arguments: []).fromJSValue()! + _ = try await _promise.value } -} - -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 func reset() { + let this = jsObject + _ = this[Strings.reset].function!(this: this, arguments: []) } - @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])) + @inlinable public func close() { + let this = jsObject + _ = this[Strings.close].function!(this: this, arguments: []) } - @ReadonlyAttribute - public var parameters: AudioParamMap - - @ReadonlyAttribute - public var port: MessagePort + @inlinable public static func isConfigSupported(config: AudioEncoderConfig) -> JSPromise { + let this = constructor + return this[Strings.isConfigSupported].function!(this: this, arguments: [config.jsValue]).fromJSValue()! + } - @ClosureAttribute1Optional - public var onprocessorerror: EventHandler + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public static func isConfigSupported(config: AudioEncoderConfig) async throws -> AudioEncoderSupport { + let this = constructor + let _promise: JSPromise = this[Strings.isConfigSupported].function!(this: this, arguments: [config.jsValue]).fromJSValue()! + return try await _promise.value.fromJSValue()! + } } -public class AudioWorkletNodeOptions: BridgedDictionary { - public convenience init(numberOfInputs: UInt32, numberOfOutputs: UInt32, outputChannelCount: [UInt32], parameterData: [String: Double], processorOptions: JSObject) { +public class AudioEncoderConfig: BridgedDictionary { + public convenience init(codec: String, sampleRate: UInt32, numberOfChannels: UInt32, bitrate: UInt64) { 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 + object[Strings.codec] = codec.jsValue + object[Strings.sampleRate] = sampleRate.jsValue + object[Strings.numberOfChannels] = numberOfChannels.jsValue + object[Strings.bitrate] = bitrate.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) + _codec = ReadWriteAttribute(jsObject: object, name: Strings.codec) + _sampleRate = ReadWriteAttribute(jsObject: object, name: Strings.sampleRate) + _numberOfChannels = ReadWriteAttribute(jsObject: object, name: Strings.numberOfChannels) + _bitrate = ReadWriteAttribute(jsObject: object, name: Strings.bitrate) super.init(unsafelyWrapping: object) } @ReadWriteAttribute - public var numberOfInputs: UInt32 - - @ReadWriteAttribute - public var numberOfOutputs: UInt32 + public var codec: String @ReadWriteAttribute - public var outputChannelCount: [UInt32] + public var sampleRate: UInt32 @ReadWriteAttribute - public var parameterData: [String: Double] + public var numberOfChannels: UInt32 @ReadWriteAttribute - public var processorOptions: JSObject + public var bitrate: UInt64 } -public enum AutomationRate: JSString, JSValueCompatible { - case aRate = "a-rate" - case kRate = "k-rate" +public class AudioEncoderInit: BridgedDictionary { + public convenience init(output: @escaping EncodedAudioChunkOutputCallback, error: @escaping WebCodecsErrorCallback) { + let object = JSObject.global[Strings.Object].function!.new() + ClosureAttribute2Void[Strings.output, in: object] = output + ClosureAttribute1Void[Strings.error, in: object] = error + self.init(unsafelyWrapping: object) + } - @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) { + _output = ClosureAttribute2Void(jsObject: object, name: Strings.output) + _error = ClosureAttribute1Void(jsObject: object, name: Strings.error) + super.init(unsafelyWrapping: object) } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) + @ClosureAttribute2Void + public var output: EncodedAudioChunkOutputCallback + + @ClosureAttribute1Void + public var error: WebCodecsErrorCallback +} + +public class AudioEncoderSupport: BridgedDictionary { + public convenience init(supported: Bool, config: AudioEncoderConfig) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.supported] = supported.jsValue + object[Strings.config] = config.jsValue + self.init(unsafelyWrapping: object) } - @inlinable public var jsValue: JSValue { rawValue.jsValue } + public required init(unsafelyWrapping object: JSObject) { + _supported = ReadWriteAttribute(jsObject: object, name: Strings.supported) + _config = ReadWriteAttribute(jsObject: object, name: Strings.config) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var supported: Bool + + @ReadWriteAttribute + public var config: AudioEncoderConfig } -public class BarProp: JSBridgedClass { - @inlinable public class var constructor: JSFunction { JSObject.global[Strings.BarProp].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) { - _visible = ReadonlyAttribute(jsObject: jsObject, name: Strings.visible) + _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 } @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) - } + public var positionX: AudioParam @ReadonlyAttribute - public var destination: AudioDestinationNode + public var positionY: AudioParam @ReadonlyAttribute - public var sampleRate: Float + public var positionZ: AudioParam @ReadonlyAttribute - public var currentTime: Double + public var forwardX: AudioParam @ReadonlyAttribute - public var listener: AudioListener + public var forwardY: AudioParam @ReadonlyAttribute - public var state: AudioContextState + public var forwardZ: AudioParam @ReadonlyAttribute - public var audioWorklet: AudioWorklet + public var upX: AudioParam - @ClosureAttribute1Optional - public var onstatechange: EventHandler + @ReadonlyAttribute + public var upY: AudioParam - @inlinable public func createAnalyser() -> AnalyserNode { - let this = jsObject - return this[Strings.createAnalyser].function!(this: this, arguments: []).fromJSValue()! - } + @ReadonlyAttribute + public var upZ: AudioParam - @inlinable public func createBiquadFilter() -> BiquadFilterNode { + @inlinable public func setPosition(x: Float, y: Float, z: Float) { let this = jsObject - return this[Strings.createBiquadFilter].function!(this: this, arguments: []).fromJSValue()! + _ = this[Strings.setPosition].function!(this: this, arguments: [x.jsValue, y.jsValue, z.jsValue]) } - @inlinable public func createBuffer(numberOfChannels: UInt32, length: UInt32, sampleRate: Float) -> AudioBuffer { + @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.createBuffer].function!(this: this, arguments: [numberOfChannels.jsValue, length.jsValue, sampleRate.jsValue]).fromJSValue()! + _ = this[Strings.setOrientation].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5]) } +} - @inlinable public func createBufferSource() -> AudioBufferSourceNode { - let this = jsObject - return this[Strings.createBufferSource].function!(this: this, arguments: []).fromJSValue()! - } +public class AudioNode: EventTarget { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.AudioNode].function! } - @inlinable public func createChannelMerger(numberOfInputs: UInt32? = nil) -> ChannelMergerNode { - let this = jsObject - return this[Strings.createChannelMerger].function!(this: this, arguments: [numberOfInputs?.jsValue ?? .undefined]).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) } - @inlinable public func createChannelSplitter(numberOfOutputs: UInt32? = nil) -> ChannelSplitterNode { + @inlinable public func connect(destinationNode: AudioNode, output: UInt32? = nil, input: UInt32? = nil) -> Self { let this = jsObject - return this[Strings.createChannelSplitter].function!(this: this, arguments: [numberOfOutputs?.jsValue ?? .undefined]).fromJSValue()! + return this[Strings.connect].function!(this: this, arguments: [destinationNode.jsValue, output?.jsValue ?? .undefined, input?.jsValue ?? .undefined]).fromJSValue()! } - @inlinable public func createConstantSource() -> ConstantSourceNode { + @inlinable public func connect(destinationParam: AudioParam, output: UInt32? = nil) { let this = jsObject - return this[Strings.createConstantSource].function!(this: this, arguments: []).fromJSValue()! + _ = this[Strings.connect].function!(this: this, arguments: [destinationParam.jsValue, output?.jsValue ?? .undefined]) } - @inlinable public func createConvolver() -> ConvolverNode { + @inlinable public func disconnect() { let this = jsObject - return this[Strings.createConvolver].function!(this: this, arguments: []).fromJSValue()! + _ = this[Strings.disconnect].function!(this: this, arguments: []) } - @inlinable public func createDelay(maxDelayTime: Double? = nil) -> DelayNode { + @inlinable public func disconnect(output: UInt32) { let this = jsObject - return this[Strings.createDelay].function!(this: this, arguments: [maxDelayTime?.jsValue ?? .undefined]).fromJSValue()! + _ = this[Strings.disconnect].function!(this: this, arguments: [output.jsValue]) } - @inlinable public func createDynamicsCompressor() -> DynamicsCompressorNode { + @inlinable public func disconnect(destinationNode: AudioNode) { let this = jsObject - return this[Strings.createDynamicsCompressor].function!(this: this, arguments: []).fromJSValue()! + _ = this[Strings.disconnect].function!(this: this, arguments: [destinationNode.jsValue]) } - @inlinable public func createGain() -> GainNode { + @inlinable public func disconnect(destinationNode: AudioNode, output: UInt32) { let this = jsObject - return this[Strings.createGain].function!(this: this, arguments: []).fromJSValue()! + _ = this[Strings.disconnect].function!(this: this, arguments: [destinationNode.jsValue, output.jsValue]) } - @inlinable public func createIIRFilter(feedforward: [Double], feedback: [Double]) -> IIRFilterNode { + @inlinable public func disconnect(destinationNode: AudioNode, output: UInt32, input: UInt32) { let this = jsObject - return this[Strings.createIIRFilter].function!(this: this, arguments: [feedforward.jsValue, feedback.jsValue]).fromJSValue()! + _ = this[Strings.disconnect].function!(this: this, arguments: [destinationNode.jsValue, output.jsValue, input.jsValue]) } - @inlinable public func createOscillator() -> OscillatorNode { + @inlinable public func disconnect(destinationParam: AudioParam) { let this = jsObject - return this[Strings.createOscillator].function!(this: this, arguments: []).fromJSValue()! + _ = this[Strings.disconnect].function!(this: this, arguments: [destinationParam.jsValue]) } - @inlinable public func createPanner() -> PannerNode { + @inlinable public func disconnect(destinationParam: AudioParam, output: UInt32) { let this = jsObject - return this[Strings.createPanner].function!(this: this, arguments: []).fromJSValue()! + _ = this[Strings.disconnect].function!(this: this, arguments: [destinationParam.jsValue, output.jsValue]) } - @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()! - } + @ReadonlyAttribute + public var context: BaseAudioContext - @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()! - } + @ReadonlyAttribute + public var numberOfInputs: UInt32 - @inlinable public func createStereoPanner() -> StereoPannerNode { - let this = jsObject - return this[Strings.createStereoPanner].function!(this: this, arguments: []).fromJSValue()! - } + @ReadonlyAttribute + public var numberOfOutputs: UInt32 - @inlinable public func createWaveShaper() -> WaveShaperNode { - let this = jsObject - return this[Strings.createWaveShaper].function!(this: this, arguments: []).fromJSValue()! - } + @ReadWriteAttribute + public var channelCount: UInt32 - // XXX: member 'decodeAudioData' is ignored + @ReadWriteAttribute + public var channelCountMode: ChannelCountMode - // XXX: member 'decodeAudioData' is ignored + @ReadWriteAttribute + public var channelInterpretation: ChannelInterpretation } -public class BaseComputedKeyframe: BridgedDictionary { - public convenience init(offset: Double?, computedOffset: Double, easing: String, composite: CompositeOperationOrAuto) { +public class AudioNodeOptions: BridgedDictionary { + public convenience init(channelCount: UInt32, channelCountMode: ChannelCountMode, channelInterpretation: ChannelInterpretation) { 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.channelCount] = channelCount.jsValue + object[Strings.channelCountMode] = channelCountMode.jsValue + object[Strings.channelInterpretation] = channelInterpretation.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) + _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 offset: Double? - - @ReadWriteAttribute - public var computedOffset: Double + public var channelCount: UInt32 @ReadWriteAttribute - public var easing: String + public var channelCountMode: ChannelCountMode @ReadWriteAttribute - public var composite: CompositeOperationOrAuto + public var channelInterpretation: ChannelInterpretation } -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 AudioParam: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.AudioParam].function! } - 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) + 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 } @ReadWriteAttribute - public var offset: Double? + public var value: Float @ReadWriteAttribute - public var easing: String + public var automationRate: AutomationRate - @ReadWriteAttribute - public var composite: CompositeOperationOrAuto + @ReadonlyAttribute + public var defaultValue: Float + + @ReadonlyAttribute + public var minValue: Float + + @ReadonlyAttribute + public var maxValue: Float + + @inlinable public func setValueAtTime(value: Float, startTime: Double) -> Self { + let this = jsObject + return this[Strings.setValueAtTime].function!(this: this, arguments: [value.jsValue, startTime.jsValue]).fromJSValue()! + } + + @inlinable public func linearRampToValueAtTime(value: Float, endTime: Double) -> Self { + let this = jsObject + return this[Strings.linearRampToValueAtTime].function!(this: this, arguments: [value.jsValue, endTime.jsValue]).fromJSValue()! + } + + @inlinable public func exponentialRampToValueAtTime(value: Float, endTime: Double) -> Self { + let this = jsObject + return this[Strings.exponentialRampToValueAtTime].function!(this: this, arguments: [value.jsValue, endTime.jsValue]).fromJSValue()! + } + + @inlinable public func setTargetAtTime(target: Float, startTime: Double, timeConstant: Float) -> Self { + let this = jsObject + return this[Strings.setTargetAtTime].function!(this: this, arguments: [target.jsValue, startTime.jsValue, timeConstant.jsValue]).fromJSValue()! + } + + @inlinable public func setValueCurveAtTime(values: [Float], startTime: Double, duration: Double) -> Self { + let this = jsObject + return this[Strings.setValueCurveAtTime].function!(this: this, arguments: [values.jsValue, startTime.jsValue, duration.jsValue]).fromJSValue()! + } + + @inlinable public func cancelScheduledValues(cancelTime: Double) -> Self { + let this = jsObject + return this[Strings.cancelScheduledValues].function!(this: this, arguments: [cancelTime.jsValue]).fromJSValue()! + } + + @inlinable public func cancelAndHoldAtTime(cancelTime: Double) -> Self { + let this = jsObject + return this[Strings.cancelAndHoldAtTime].function!(this: this, arguments: [cancelTime.jsValue]).fromJSValue()! + } } -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 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.offset] = offset.jsValue - object[Strings.easing] = easing.jsValue - object[Strings.composite] = composite.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) { - _offset = ReadWriteAttribute(jsObject: object, name: Strings.offset) - _easing = ReadWriteAttribute(jsObject: object, name: Strings.easing) - _composite = ReadWriteAttribute(jsObject: object, name: Strings.composite) + _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 offset: nullable_Double_or_seq_of_nullable_Double + public var name: String @ReadWriteAttribute - public var easing: String_or_seq_of_String + public var defaultValue: Float @ReadWriteAttribute - public var composite: CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto + public var minValue: Float + + @ReadWriteAttribute + public var maxValue: Float + + @ReadWriteAttribute + public var automationRate: AutomationRate } -public class BeforeUnloadEvent: Event { - @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.BeforeUnloadEvent].function! } +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) { - super.init(unsafelyWrapping: jsObject) + self.jsObject = jsObject } - // XXX: member 'returnValue' is ignored + // XXX: make me Map-like! } -public enum BinaryType: JSString, JSValueCompatible { - case blob = "blob" - case arraybuffer = "arraybuffer" - - @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 BiquadFilterNode: AudioNode { - @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.BiquadFilterNode].function! } +public class AudioProcessingEvent: Event { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.AudioProcessingEvent].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) + _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(context: BaseAudioContext, options: BiquadFilterOptions? = nil) { - self.init(unsafelyWrapping: Self.constructor.new(arguments: [context.jsValue, options?.jsValue ?? .undefined])) + @inlinable public convenience init(type: String, eventInitDict: AudioProcessingEventInit) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [type.jsValue, eventInitDict.jsValue])) } - @ReadWriteAttribute - public var type: BiquadFilterType - - @ReadonlyAttribute - public var frequency: AudioParam - @ReadonlyAttribute - public var detune: AudioParam + public var playbackTime: Double @ReadonlyAttribute - public var Q: AudioParam + public var inputBuffer: AudioBuffer @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 var outputBuffer: AudioBuffer } -public class BiquadFilterOptions: BridgedDictionary { - public convenience init(type: BiquadFilterType, Q: Float, detune: Float, frequency: Float, gain: Float) { +public class AudioProcessingEventInit: BridgedDictionary { + public convenience init(playbackTime: Double, inputBuffer: AudioBuffer, outputBuffer: AudioBuffer) { 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 + 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) { - _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) + _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 type: BiquadFilterType - - @ReadWriteAttribute - public var Q: Float - - @ReadWriteAttribute - public var detune: Float + public var playbackTime: Double @ReadWriteAttribute - public var frequency: Float + public var inputBuffer: AudioBuffer @ReadWriteAttribute - public var gain: Float + public var outputBuffer: AudioBuffer } -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" +public enum AudioSampleFormat: JSString, JSValueCompatible { + case u8 = "u8" + case s16 = "s16" + case s32 = "s32" + case f32 = "f32" + case u8Planar = "u8-planar" + case s16Planar = "s16-planar" + case s32Planar = "s32-planar" + case f32Planar = "f32-planar" @inlinable public static func construct(from jsValue: JSValue) -> Self? { if let string = jsValue.jsString { @@ -1847,300 +1753,442 @@ public enum BiquadFilterType: JSString, JSValueCompatible { @inlinable public var jsValue: JSValue { rawValue.jsValue } } -public enum BitrateMode: JSString, JSValueCompatible { - case constant = "constant" - case variable = "variable" +public class AudioScheduledSourceNode: AudioNode { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.AudioScheduledSourceNode].function! } - @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } - return nil + public required init(unsafelyWrapping jsObject: JSObject) { + _onended = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onended) + super.init(unsafelyWrapping: jsObject) } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) + @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 var jsValue: JSValue { rawValue.jsValue } + @inlinable public func stop(when: Double? = nil) { + let this = jsObject + _ = this[Strings.stop].function!(this: this, arguments: [when?.jsValue ?? .undefined]) + } } -public class Blob: JSBridgedClass { - @inlinable public class var constructor: JSFunction { JSObject.global[Strings.Blob].function! } +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) { - _size = ReadonlyAttribute(jsObject: jsObject, name: Strings.size) - _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type) + _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 } - @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 id: String @ReadonlyAttribute - public var size: UInt64 + public var kind: String @ReadonlyAttribute - public var type: String + public var label: 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()! - } + @ReadonlyAttribute + public var language: String - // XXX: member 'stream' is ignored + @ReadWriteAttribute + public var enabled: Bool +} - @inlinable public func text() -> JSPromise { - let this = jsObject - return this[Strings.text].function!(this: this, arguments: []).fromJSValue()! +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) } - @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()! + @ReadonlyAttribute + public var length: UInt32 + + @inlinable public subscript(key: Int) -> AudioTrack { + jsObject[key].fromJSValue()! } - @inlinable public func arrayBuffer() -> JSPromise { + @inlinable public func getTrackById(id: String) -> AudioTrack? { let this = jsObject - return this[Strings.arrayBuffer].function!(this: this, arguments: []).fromJSValue()! + return this[Strings.getTrackById].function!(this: this, arguments: [id.jsValue]).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()! + @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 BlobEvent: Event { - @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.BlobEvent].function! } +public class AudioWorkletNode: AudioNode { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.AudioWorkletNode].function! } public required init(unsafelyWrapping jsObject: JSObject) { - _data = ReadonlyAttribute(jsObject: jsObject, name: Strings.data) - _timecode = ReadonlyAttribute(jsObject: jsObject, name: Strings.timecode) + _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(type: String, eventInitDict: BlobEventInit) { - self.init(unsafelyWrapping: Self.constructor.new(arguments: [type.jsValue, eventInitDict.jsValue])) + @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 data: Blob + public var parameters: AudioParamMap @ReadonlyAttribute - public var timecode: DOMHighResTimeStamp + public var port: MessagePort + + @ClosureAttribute1Optional + public var onprocessorerror: EventHandler } -public class BlobEventInit: BridgedDictionary { - public convenience init(data: Blob, timecode: DOMHighResTimeStamp) { +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.data] = data.jsValue - object[Strings.timecode] = timecode.jsValue + 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) { - _data = ReadWriteAttribute(jsObject: object, name: Strings.data) - _timecode = ReadWriteAttribute(jsObject: object, name: Strings.timecode) + _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 data: Blob + public var numberOfInputs: UInt32 @ReadWriteAttribute - public var timecode: DOMHighResTimeStamp -} + public var numberOfOutputs: UInt32 -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) + @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 } - public required init(unsafelyWrapping object: JSObject) { - _type = ReadWriteAttribute(jsObject: object, name: Strings.type) - _endings = ReadWriteAttribute(jsObject: object, name: Strings.endings) - super.init(unsafelyWrapping: object) + @inlinable public init?(string: String) { + self.init(rawValue: JSString(string)) } - @ReadWriteAttribute - public var type: String + @inlinable public var jsValue: JSValue { rawValue.jsValue } +} - @ReadWriteAttribute - public var endings: EndingType +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 protocol Body: JSBridgedClass {} -public extension Body { - // XXX: attribute 'body' is ignored +public class BaseAudioContext: EventTarget { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.BaseAudioContext].function! } - @inlinable var bodyUsed: Bool { ReadonlyAttribute[Strings.bodyUsed, in: jsObject] } + 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) + } - @inlinable func arrayBuffer() -> JSPromise { + @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.arrayBuffer].function!(this: this, arguments: []).fromJSValue()! + return this[Strings.createAnalyser].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 createBiquadFilter() -> BiquadFilterNode { let this = jsObject - let _promise: JSPromise = this[Strings.arrayBuffer].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! + return this[Strings.createBiquadFilter].function!(this: this, arguments: []).fromJSValue()! } - @inlinable func blob() -> JSPromise { + @inlinable public func createBuffer(numberOfChannels: UInt32, length: UInt32, sampleRate: Float) -> AudioBuffer { let this = jsObject - return this[Strings.blob].function!(this: this, arguments: []).fromJSValue()! + return this[Strings.createBuffer].function!(this: this, arguments: [numberOfChannels.jsValue, length.jsValue, sampleRate.jsValue]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable func blob() async throws -> Blob { + @inlinable public func createBufferSource() -> AudioBufferSourceNode { let this = jsObject - let _promise: JSPromise = this[Strings.blob].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! + return this[Strings.createBufferSource].function!(this: this, arguments: []).fromJSValue()! } - @inlinable func formData() -> JSPromise { + @inlinable public func createChannelMerger(numberOfInputs: UInt32? = nil) -> ChannelMergerNode { let this = jsObject - return this[Strings.formData].function!(this: this, arguments: []).fromJSValue()! + return this[Strings.createChannelMerger].function!(this: this, arguments: [numberOfInputs?.jsValue ?? .undefined]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable func formData() async throws -> FormData { + @inlinable public func createChannelSplitter(numberOfOutputs: UInt32? = nil) -> ChannelSplitterNode { let this = jsObject - let _promise: JSPromise = this[Strings.formData].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! + return this[Strings.createChannelSplitter].function!(this: this, arguments: [numberOfOutputs?.jsValue ?? .undefined]).fromJSValue()! } - @inlinable func json() -> JSPromise { + @inlinable public func createConstantSource() -> ConstantSourceNode { let this = jsObject - return this[Strings.json].function!(this: this, arguments: []).fromJSValue()! + return this[Strings.createConstantSource].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable func json() async throws -> JSValue { + @inlinable public func createConvolver() -> ConvolverNode { let this = jsObject - let _promise: JSPromise = this[Strings.json].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! + return this[Strings.createConvolver].function!(this: this, arguments: []).fromJSValue()! } - @inlinable func text() -> JSPromise { + @inlinable public func createDelay(maxDelayTime: Double? = nil) -> DelayNode { let this = jsObject - return this[Strings.text].function!(this: this, arguments: []).fromJSValue()! + return this[Strings.createDelay].function!(this: this, arguments: [maxDelayTime?.jsValue ?? .undefined]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable func text() async throws -> String { + @inlinable public func createDynamicsCompressor() -> DynamicsCompressorNode { let this = jsObject - let _promise: JSPromise = this[Strings.text].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! + return this[Strings.createDynamicsCompressor].function!(this: this, arguments: []).fromJSValue()! } -} -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) + @inlinable public func createGain() -> GainNode { + let this = jsObject + return this[Strings.createGain].function!(this: this, arguments: []).fromJSValue()! } - public required init(unsafelyWrapping object: JSObject) { - _box = ReadWriteAttribute(jsObject: object, name: Strings.box) - _relativeTo = ReadWriteAttribute(jsObject: object, name: Strings.relativeTo) - super.init(unsafelyWrapping: object) + @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()! } - @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! } + @inlinable public func createOscillator() -> OscillatorNode { + let this = jsObject + return this[Strings.createOscillator].function!(this: this, arguments: []).fromJSValue()! + } - 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 func createPanner() -> PannerNode { + let this = jsObject + return this[Strings.createPanner].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public convenience init(name: String) { - self.init(unsafelyWrapping: Self.constructor.new(arguments: [name.jsValue])) + @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()! } - @ReadonlyAttribute - public var name: String + @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 postMessage(message: JSValue) { + @inlinable public func createStereoPanner() -> StereoPannerNode { let this = jsObject - _ = this[Strings.postMessage].function!(this: this, arguments: [message.jsValue]) + return this[Strings.createStereoPanner].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func close() { + @inlinable public func createWaveShaper() -> WaveShaperNode { let this = jsObject - _ = this[Strings.close].function!(this: this, arguments: []) + return this[Strings.createWaveShaper].function!(this: this, arguments: []).fromJSValue()! } - @ClosureAttribute1Optional - public var onmessage: EventHandler + // XXX: member 'decodeAudioData' is ignored - @ClosureAttribute1Optional - public var onmessageerror: EventHandler + // XXX: member 'decodeAudioData' is ignored } -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 +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) } - @inlinable public convenience init(init: QueuingStrategyInit) { - self.init(unsafelyWrapping: Self.constructor.new(arguments: [`init`.jsValue])) + 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) } - @ReadonlyAttribute - public var highWaterMark: Double + @ReadWriteAttribute + public var offset: Double? - @ReadonlyAttribute - public var size: JSFunction -} + @ReadWriteAttribute + public var computedOffset: Double -public class CDATASection: Text { - @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.CDATASection].function! } + @ReadWriteAttribute + public var easing: String - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } + @ReadWriteAttribute + public var composite: CompositeOperationOrAuto } -public enum CSSBoxType: JSString, JSValueCompatible { - case margin = "margin" - case border = "border" - case padding = "padding" - case content = "content" +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) + } - @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) + 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 enum BinaryType: JSString, JSValueCompatible { + case blob = "blob" + case arraybuffer = "arraybuffer" + + @inlinable public static func construct(from jsValue: JSValue) -> Self? { + if let string = jsValue.jsString { + return Self(rawValue: string) } return nil } @@ -2152,273 +2200,393 @@ public enum CSSBoxType: JSString, JSValueCompatible { @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 class BiquadFilterNode: AudioNode { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.BiquadFilterNode].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) + _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 type: String + public var frequency: AudioParam @ReadonlyAttribute - public var element: Element + public var detune: AudioParam @ReadonlyAttribute - public var parent: CSSPseudoElement_or_Element + public var Q: AudioParam - @inlinable public func pseudo(type: String) -> CSSPseudoElement? { + @ReadonlyAttribute + public var gain: AudioParam + + @inlinable public func getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array) { let this = jsObject - return this[Strings.pseudo].function!(this: this, arguments: [type.jsValue]).fromJSValue()! + _ = this[Strings.getFrequencyResponse].function!(this: this, arguments: [frequencyHz.jsValue, magResponse.jsValue, phaseResponse.jsValue]) } } -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 +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) } - @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()! + 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) } - @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()! - } + @ReadWriteAttribute + public var type: BiquadFilterType - @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()! - } + @ReadWriteAttribute + public var Q: Float - @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()! + @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 func add(request: RequestInfo) -> JSPromise { - let this = jsObject - return this[Strings.add].function!(this: this, arguments: [request.jsValue]).fromJSValue()! + @inlinable public init?(string: String) { + self.init(rawValue: JSString(string)) } - @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 var jsValue: JSValue { rawValue.jsValue } +} + +public enum BitrateMode: JSString, JSValueCompatible { + case constant = "constant" + case variable = "variable" + + @inlinable public static func construct(from jsValue: JSValue) -> Self? { + if let string = jsValue.jsString { + return Self(rawValue: string) + } + return nil } - @inlinable public func addAll(requests: [RequestInfo]) -> JSPromise { - let this = jsObject - return this[Strings.addAll].function!(this: this, arguments: [requests.jsValue]).fromJSValue()! + @inlinable public init?(string: String) { + self.init(rawValue: JSString(string)) } - @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 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 func put(request: RequestInfo, response: Response) -> JSPromise { - let this = jsObject - return this[Strings.put].function!(this: this, arguments: [request.jsValue, response.jsValue]).fromJSValue()! + @inlinable public convenience init(blobParts: [BlobPart]? = nil, options: BlobPropertyBag? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [blobParts?.jsValue ?? .undefined, options?.jsValue ?? .undefined])) } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func put(request: RequestInfo, response: Response) async throws { + @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 - let _promise: JSPromise = this[Strings.put].function!(this: this, arguments: [request.jsValue, response.jsValue]).fromJSValue()! - _ = try await _promise.value + return this[Strings.slice].function!(this: this, arguments: [start?.jsValue ?? .undefined, end?.jsValue ?? .undefined, contentType?.jsValue ?? .undefined]).fromJSValue()! } - @inlinable public func delete(request: RequestInfo, options: CacheQueryOptions? = nil) -> JSPromise { + // XXX: member 'stream' is ignored + + @inlinable public func text() -> JSPromise { let this = jsObject - return this[Strings.delete].function!(this: this, arguments: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()! + 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 delete(request: RequestInfo, options: CacheQueryOptions? = nil) async throws -> Bool { + @inlinable public func text() async throws -> String { let this = jsObject - let _promise: JSPromise = this[Strings.delete].function!(this: this, arguments: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()! + let _promise: JSPromise = this[Strings.text].function!(this: this, arguments: []).fromJSValue()! return try await _promise.value.fromJSValue()! } - @inlinable public func keys(request: RequestInfo? = nil, options: CacheQueryOptions? = nil) -> JSPromise { + @inlinable public func arrayBuffer() -> JSPromise { let this = jsObject - return this[Strings.keys].function!(this: this, arguments: [request?.jsValue ?? .undefined, options?.jsValue ?? .undefined]).fromJSValue()! + 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 keys(request: RequestInfo? = nil, options: CacheQueryOptions? = nil) async throws -> [Request] { + @inlinable public func arrayBuffer() async throws -> ArrayBuffer { let this = jsObject - let _promise: JSPromise = this[Strings.keys].function!(this: this, arguments: [request?.jsValue ?? .undefined, options?.jsValue ?? .undefined]).fromJSValue()! + let _promise: JSPromise = this[Strings.arrayBuffer].function!(this: this, arguments: []).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 class BlobEvent: Event { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.BlobEvent].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _data = ReadonlyAttribute(jsObject: jsObject, name: Strings.data) + _timecode = ReadonlyAttribute(jsObject: jsObject, name: Strings.timecode) + super.init(unsafelyWrapping: jsObject) } - 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) + @inlinable public convenience init(type: String, eventInitDict: BlobEventInit) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [type.jsValue, eventInitDict.jsValue])) + } + + @ReadonlyAttribute + public var data: Blob + + @ReadonlyAttribute + public var timecode: DOMHighResTimeStamp +} + +public class BlobEventInit: BridgedDictionary { + public convenience init(data: Blob, timecode: DOMHighResTimeStamp) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.data] = data.jsValue + object[Strings.timecode] = timecode.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _data = ReadWriteAttribute(jsObject: object, name: Strings.data) + _timecode = ReadWriteAttribute(jsObject: object, name: Strings.timecode) super.init(unsafelyWrapping: object) } @ReadWriteAttribute - public var ignoreSearch: Bool + public var data: Blob @ReadWriteAttribute - public var ignoreMethod: Bool + public var timecode: DOMHighResTimeStamp +} + +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 ignoreVary: Bool -} + public var type: String -public class CacheStorage: JSBridgedClass { - @inlinable public class var constructor: JSFunction { JSObject.global[Strings.CacheStorage].function! } + @ReadWriteAttribute + public var endings: EndingType +} - public let jsObject: JSObject +public protocol Body: JSBridgedClass {} +public extension Body { + // XXX: attribute 'body' is ignored - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + @inlinable var bodyUsed: Bool { ReadonlyAttribute[Strings.bodyUsed, in: jsObject] } - @inlinable public func match(request: RequestInfo, options: MultiCacheQueryOptions? = nil) -> JSPromise { + @inlinable func arrayBuffer() -> JSPromise { let this = jsObject - return this[Strings.match].function!(this: this, arguments: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()! + 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 match(request: RequestInfo, options: MultiCacheQueryOptions? = nil) async throws -> Response? { + @inlinable func arrayBuffer() async throws -> ArrayBuffer { let this = jsObject - let _promise: JSPromise = this[Strings.match].function!(this: this, arguments: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()! + let _promise: JSPromise = this[Strings.arrayBuffer].function!(this: this, arguments: []).fromJSValue()! return try await _promise.value.fromJSValue()! } - @inlinable public func has(cacheName: String) -> JSPromise { + @inlinable func blob() -> JSPromise { let this = jsObject - return this[Strings.has].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()! + return this[Strings.blob].function!(this: this, arguments: []).fromJSValue()! } @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func has(cacheName: String) async throws -> Bool { + @inlinable func blob() async throws -> Blob { let this = jsObject - let _promise: JSPromise = this[Strings.has].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()! + let _promise: JSPromise = this[Strings.blob].function!(this: this, arguments: []).fromJSValue()! return try await _promise.value.fromJSValue()! } - @inlinable public func open(cacheName: String) -> JSPromise { + @inlinable func formData() -> JSPromise { let this = jsObject - return this[Strings.open].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()! + return this[Strings.formData].function!(this: this, arguments: []).fromJSValue()! } @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func open(cacheName: String) async throws -> Cache { + @inlinable func formData() async throws -> FormData { let this = jsObject - let _promise: JSPromise = this[Strings.open].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()! + let _promise: JSPromise = this[Strings.formData].function!(this: this, arguments: []).fromJSValue()! return try await _promise.value.fromJSValue()! } - @inlinable public func delete(cacheName: String) -> JSPromise { + @inlinable func json() -> JSPromise { let this = jsObject - return this[Strings.delete].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()! + return this[Strings.json].function!(this: this, arguments: []).fromJSValue()! } @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func delete(cacheName: String) async throws -> Bool { + @inlinable func json() async throws -> JSValue { let this = jsObject - let _promise: JSPromise = this[Strings.delete].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()! + let _promise: JSPromise = this[Strings.json].function!(this: this, arguments: []).fromJSValue()! return try await _promise.value.fromJSValue()! } - @inlinable public func keys() -> JSPromise { + @inlinable func text() -> JSPromise { let this = jsObject - return this[Strings.keys].function!(this: this, arguments: []).fromJSValue()! + 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 keys() async throws -> [String] { + @inlinable func text() async throws -> String { let this = jsObject - let _promise: JSPromise = this[Strings.keys].function!(this: this, arguments: []).fromJSValue()! + let _promise: JSPromise = this[Strings.text].function!(this: this, arguments: []).fromJSValue()! return try await _promise.value.fromJSValue()! } } -public class CameraDevicePermissionDescriptor: BridgedDictionary { - public convenience init(panTiltZoom: Bool) { +public class BoxQuadOptions: BridgedDictionary { + public convenience init(box: CSSBoxType, relativeTo: GeometryNode) { let object = JSObject.global[Strings.Object].function!.new() - object[Strings.panTiltZoom] = panTiltZoom.jsValue + object[Strings.box] = box.jsValue + object[Strings.relativeTo] = relativeTo.jsValue self.init(unsafelyWrapping: object) } public required init(unsafelyWrapping object: JSObject) { - _panTiltZoom = ReadWriteAttribute(jsObject: object, name: Strings.panTiltZoom) + _box = ReadWriteAttribute(jsObject: object, name: Strings.box) + _relativeTo = ReadWriteAttribute(jsObject: object, name: Strings.relativeTo) super.init(unsafelyWrapping: object) } @ReadWriteAttribute - public var panTiltZoom: Bool + public var box: CSSBoxType + + @ReadWriteAttribute + public var relativeTo: GeometryNode } -public enum CanPlayTypeResult: JSString, JSValueCompatible { - case _empty = "" - case maybe = "maybe" - case probably = "probably" +public class BroadcastChannel: EventTarget { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.BroadcastChannel].function! } - @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } - return nil + 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 init?(string: String) { - self.init(rawValue: JSString(string)) + @inlinable public convenience init(name: String) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [name.jsValue])) } - @inlinable public var jsValue: JSValue { rawValue.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 protocol CanvasCompositing: JSBridgedClass {} -public extension CanvasCompositing { - @inlinable var globalAlpha: Double { - get { ReadWriteAttribute[Strings.globalAlpha, in: jsObject] } - nonmutating set { ReadWriteAttribute[Strings.globalAlpha, in: jsObject] = newValue } +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 var globalCompositeOperation: String { - get { ReadWriteAttribute[Strings.globalCompositeOperation, in: jsObject] } - nonmutating set { ReadWriteAttribute[Strings.globalCompositeOperation, in: jsObject] = newValue } + @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 enum CanvasDirection: JSString, JSValueCompatible { - case ltr = "ltr" - case rtl = "rtl" - case inherit = "inherit" +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 { @@ -2434,199 +2602,241 @@ public enum CanvasDirection: JSString, JSValueCompatible { @inlinable public var jsValue: JSValue { rawValue.jsValue } } -public protocol CanvasDrawImage: JSBridgedClass {} -public extension CanvasDrawImage { - @inlinable func drawImage(image: CanvasImageSource, dx: Double, dy: Double) { - let this = jsObject - _ = this[Strings.drawImage].function!(this: this, arguments: [image.jsValue, dx.jsValue, dy.jsValue]) - } +public class CSSPseudoElement: EventTarget, GeometryUtils { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.CSSPseudoElement].function! } - @inlinable func drawImage(image: CanvasImageSource, dx: Double, dy: Double, dw: Double, dh: Double) { - let this = jsObject - _ = this[Strings.drawImage].function!(this: this, arguments: [image.jsValue, dx.jsValue, dy.jsValue, dw.jsValue, dh.jsValue]) + 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) } - @inlinable func drawImage(image: CanvasImageSource, sx: Double, sy: Double, sw: Double, sh: Double, dx: Double, dy: Double, dw: Double, dh: Double) { - let _arg0 = image.jsValue - let _arg1 = sx.jsValue - let _arg2 = sy.jsValue - let _arg3 = sw.jsValue - let _arg4 = sh.jsValue - let _arg5 = dx.jsValue - let _arg6 = dy.jsValue - let _arg7 = dw.jsValue - let _arg8 = dh.jsValue + @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 - _ = this[Strings.drawImage].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8]) + return this[Strings.pseudo].function!(this: this, arguments: [type.jsValue]).fromJSValue()! } } -public protocol CanvasDrawPath: JSBridgedClass {} -public extension CanvasDrawPath { - @inlinable func beginPath() { - let this = jsObject - _ = this[Strings.beginPath].function!(this: this, arguments: []) +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 func fill(fillRule: CanvasFillRule? = nil) { + @inlinable public func match(request: RequestInfo, options: CacheQueryOptions? = nil) -> JSPromise { let this = jsObject - _ = this[Strings.fill].function!(this: this, arguments: [fillRule?.jsValue ?? .undefined]) + return this[Strings.match].function!(this: this, arguments: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()! } - @inlinable func fill(path: Path2D, fillRule: CanvasFillRule? = nil) { + @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 - _ = this[Strings.fill].function!(this: this, arguments: [path.jsValue, fillRule?.jsValue ?? .undefined]) + let _promise: JSPromise = this[Strings.match].function!(this: this, arguments: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()! + return try await _promise.value.fromJSValue()! } - @inlinable func stroke() { + @inlinable public func matchAll(request: RequestInfo? = nil, options: CacheQueryOptions? = nil) -> JSPromise { let this = jsObject - _ = this[Strings.stroke].function!(this: this, arguments: []) + return this[Strings.matchAll].function!(this: this, arguments: [request?.jsValue ?? .undefined, options?.jsValue ?? .undefined]).fromJSValue()! } - @inlinable func stroke(path: Path2D) { + @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 - _ = this[Strings.stroke].function!(this: this, arguments: [path.jsValue]) + let _promise: JSPromise = this[Strings.matchAll].function!(this: this, arguments: [request?.jsValue ?? .undefined, options?.jsValue ?? .undefined]).fromJSValue()! + return try await _promise.value.fromJSValue()! } - @inlinable func clip(fillRule: CanvasFillRule? = nil) { + @inlinable public func add(request: RequestInfo) -> JSPromise { let this = jsObject - _ = this[Strings.clip].function!(this: this, arguments: [fillRule?.jsValue ?? .undefined]) + return this[Strings.add].function!(this: this, arguments: [request.jsValue]).fromJSValue()! } - @inlinable func clip(path: Path2D, fillRule: CanvasFillRule? = nil) { + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public func add(request: RequestInfo) async throws { let this = jsObject - _ = this[Strings.clip].function!(this: this, arguments: [path.jsValue, fillRule?.jsValue ?? .undefined]) + let _promise: JSPromise = this[Strings.add].function!(this: this, arguments: [request.jsValue]).fromJSValue()! + _ = try await _promise.value } - @inlinable func isPointInPath(x: Double, y: Double, fillRule: CanvasFillRule? = nil) -> Bool { + @inlinable public func addAll(requests: [RequestInfo]) -> JSPromise { let this = jsObject - return this[Strings.isPointInPath].function!(this: this, arguments: [x.jsValue, y.jsValue, fillRule?.jsValue ?? .undefined]).fromJSValue()! + return this[Strings.addAll].function!(this: this, arguments: [requests.jsValue]).fromJSValue()! } - @inlinable func isPointInPath(path: Path2D, x: Double, y: Double, fillRule: CanvasFillRule? = nil) -> Bool { + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public func addAll(requests: [RequestInfo]) async throws { let this = jsObject - return this[Strings.isPointInPath].function!(this: this, arguments: [path.jsValue, x.jsValue, y.jsValue, fillRule?.jsValue ?? .undefined]).fromJSValue()! + let _promise: JSPromise = this[Strings.addAll].function!(this: this, arguments: [requests.jsValue]).fromJSValue()! + _ = try await _promise.value } - @inlinable func isPointInStroke(x: Double, y: Double) -> Bool { + @inlinable public func put(request: RequestInfo, response: Response) -> JSPromise { let this = jsObject - return this[Strings.isPointInStroke].function!(this: this, arguments: [x.jsValue, y.jsValue]).fromJSValue()! + return this[Strings.put].function!(this: this, arguments: [request.jsValue, response.jsValue]).fromJSValue()! } - @inlinable func isPointInStroke(path: Path2D, x: Double, y: Double) -> Bool { + @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 - return this[Strings.isPointInStroke].function!(this: this, arguments: [path.jsValue, x.jsValue, y.jsValue]).fromJSValue()! + let _promise: JSPromise = this[Strings.put].function!(this: this, arguments: [request.jsValue, response.jsValue]).fromJSValue()! + _ = try await _promise.value } -} -public enum CanvasFillRule: JSString, JSValueCompatible { - case nonzero = "nonzero" - case evenodd = "evenodd" + @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()! + } - @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 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 init?(string: String) { - self.init(rawValue: JSString(string)) + @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()! } - @inlinable public var jsValue: JSValue { rawValue.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] { + 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 protocol CanvasFillStrokeStyles: JSBridgedClass {} -public extension CanvasFillStrokeStyles { - @inlinable var strokeStyle: CanvasGradient_or_CanvasPattern_or_String { - get { ReadWriteAttribute[Strings.strokeStyle, in: jsObject] } - nonmutating set { ReadWriteAttribute[Strings.strokeStyle, in: jsObject] = newValue } +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) } - @inlinable var fillStyle: CanvasGradient_or_CanvasPattern_or_String { - get { ReadWriteAttribute[Strings.fillStyle, in: jsObject] } - nonmutating set { ReadWriteAttribute[Strings.fillStyle, in: jsObject] = newValue } + 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) } - @inlinable func createLinearGradient(x0: Double, y0: Double, x1: Double, y1: Double) -> CanvasGradient { + @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.createLinearGradient].function!(this: this, arguments: [x0.jsValue, y0.jsValue, x1.jsValue, y1.jsValue]).fromJSValue()! + return this[Strings.match].function!(this: this, arguments: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()! } - @inlinable func createRadialGradient(x0: Double, y0: Double, r0: Double, x1: Double, y1: Double, r1: Double) -> CanvasGradient { - let _arg0 = x0.jsValue - let _arg1 = y0.jsValue - let _arg2 = r0.jsValue - let _arg3 = x1.jsValue - let _arg4 = y1.jsValue - let _arg5 = r1.jsValue + @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 - return this[Strings.createRadialGradient].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5]).fromJSValue()! + let _promise: JSPromise = this[Strings.match].function!(this: this, arguments: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()! + return try await _promise.value.fromJSValue()! } - @inlinable func createConicGradient(startAngle: Double, x: Double, y: Double) -> CanvasGradient { + @inlinable public func has(cacheName: String) -> JSPromise { let this = jsObject - return this[Strings.createConicGradient].function!(this: this, arguments: [startAngle.jsValue, x.jsValue, y.jsValue]).fromJSValue()! + return this[Strings.has].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()! } - @inlinable func createPattern(image: CanvasImageSource, repetition: String) -> CanvasPattern? { + @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 - return this[Strings.createPattern].function!(this: this, arguments: [image.jsValue, repetition.jsValue]).fromJSValue()! + let _promise: JSPromise = this[Strings.has].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()! + return try await _promise.value.fromJSValue()! } -} -public class CanvasFilter: JSBridgedClass { - @inlinable public class var constructor: JSFunction { JSObject.global[Strings.CanvasFilter].function! } + @inlinable public func open(cacheName: String) -> JSPromise { + let this = jsObject + return this[Strings.open].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()! + } - public let jsObject: JSObject + @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()! + } - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject + @inlinable public func delete(cacheName: String) -> JSPromise { + let this = jsObject + return this[Strings.delete].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()! } - @inlinable public convenience init(filters: CanvasFilterInput_or_seq_of_CanvasFilterInput? = nil) { - self.init(unsafelyWrapping: Self.constructor.new(arguments: [filters?.jsValue ?? .undefined])) + @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()! } -} -public protocol CanvasFilters: JSBridgedClass {} -public extension CanvasFilters { - @inlinable var filter: CanvasFilter_or_String { - get { ReadWriteAttribute[Strings.filter, in: jsObject] } - nonmutating set { ReadWriteAttribute[Strings.filter, in: jsObject] = newValue } + @inlinable public func keys() -> JSPromise { + let this = jsObject + return this[Strings.keys].function!(this: this, arguments: []).fromJSValue()! } -} -public enum CanvasFontKerning: JSString, JSValueCompatible { - case auto = "auto" - case normal = "normal" - case none = "none" + @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()! + } +} - @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } - return nil +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) } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) + public required init(unsafelyWrapping object: JSObject) { + _panTiltZoom = ReadWriteAttribute(jsObject: object, name: Strings.panTiltZoom) + super.init(unsafelyWrapping: object) } - @inlinable public var jsValue: JSValue { rawValue.jsValue } + @ReadWriteAttribute + public var panTiltZoom: Bool } -public enum CanvasFontStretch: JSString, JSValueCompatible { - case ultraCondensed = "ultra-condensed" - case extraCondensed = "extra-condensed" - case condensed = "condensed" - case semiCondensed = "semi-condensed" - case normal = "normal" - case semiExpanded = "semi-expanded" - case expanded = "expanded" - case extraExpanded = "extra-expanded" - case ultraExpanded = "ultra-expanded" +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 { @@ -2642,14 +2852,23 @@ public enum CanvasFontStretch: JSString, JSValueCompatible { @inlinable public var jsValue: JSValue { rawValue.jsValue } } -public enum CanvasFontVariantCaps: JSString, JSValueCompatible { - case normal = "normal" - case smallCaps = "small-caps" - case allSmallCaps = "all-small-caps" - case petiteCaps = "petite-caps" - case allPetiteCaps = "all-petite-caps" - case unicase = "unicase" - case titlingCaps = "titling-caps" +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 } + } + + @inlinable var globalCompositeOperation: String { + get { ReadWriteAttribute[Strings.globalCompositeOperation, in: jsObject] } + nonmutating set { ReadWriteAttribute[Strings.globalCompositeOperation, in: jsObject] = newValue } + } +} + +public enum CanvasDirection: JSString, JSValueCompatible { + case ltr = "ltr" + case rtl = "rtl" + case inherit = "inherit" @inlinable public static func construct(from jsValue: JSValue) -> Self? { if let string = jsValue.jsString { @@ -2665,20 +2884,251 @@ public enum CanvasFontVariantCaps: JSString, JSValueCompatible { @inlinable public var jsValue: JSValue { rawValue.jsValue } } -public class CanvasGradient: JSBridgedClass { - @inlinable public class var constructor: JSFunction { JSObject.global[Strings.CanvasGradient].function! } - - public let jsObject: JSObject - - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject +public protocol CanvasDrawImage: JSBridgedClass {} +public extension CanvasDrawImage { + @inlinable func drawImage(image: CanvasImageSource, dx: Double, dy: Double) { + let this = jsObject + _ = this[Strings.drawImage].function!(this: this, arguments: [image.jsValue, dx.jsValue, dy.jsValue]) } - @inlinable public func addColorStop(offset: Double, color: String) { + @inlinable func drawImage(image: CanvasImageSource, dx: Double, dy: Double, dw: Double, dh: Double) { let this = jsObject - _ = this[Strings.addColorStop].function!(this: this, arguments: [offset.jsValue, color.jsValue]) + _ = this[Strings.drawImage].function!(this: this, arguments: [image.jsValue, dx.jsValue, dy.jsValue, dw.jsValue, dh.jsValue]) } -} + + @inlinable func drawImage(image: CanvasImageSource, sx: Double, sy: Double, sw: Double, sh: Double, dx: Double, dy: Double, dw: Double, dh: Double) { + let _arg0 = image.jsValue + let _arg1 = sx.jsValue + let _arg2 = sy.jsValue + let _arg3 = sw.jsValue + let _arg4 = sh.jsValue + let _arg5 = dx.jsValue + let _arg6 = dy.jsValue + let _arg7 = dw.jsValue + let _arg8 = dh.jsValue + let this = jsObject + _ = this[Strings.drawImage].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8]) + } +} + +public protocol CanvasDrawPath: JSBridgedClass {} +public extension CanvasDrawPath { + @inlinable func beginPath() { + let this = jsObject + _ = this[Strings.beginPath].function!(this: this, arguments: []) + } + + @inlinable func fill(fillRule: CanvasFillRule? = nil) { + let this = jsObject + _ = this[Strings.fill].function!(this: this, arguments: [fillRule?.jsValue ?? .undefined]) + } + + @inlinable func fill(path: Path2D, fillRule: CanvasFillRule? = nil) { + let this = jsObject + _ = this[Strings.fill].function!(this: this, arguments: [path.jsValue, fillRule?.jsValue ?? .undefined]) + } + + @inlinable func stroke() { + let this = jsObject + _ = this[Strings.stroke].function!(this: this, arguments: []) + } + + @inlinable func stroke(path: Path2D) { + let this = jsObject + _ = this[Strings.stroke].function!(this: this, arguments: [path.jsValue]) + } + + @inlinable func clip(fillRule: CanvasFillRule? = nil) { + let this = jsObject + _ = this[Strings.clip].function!(this: this, arguments: [fillRule?.jsValue ?? .undefined]) + } + + @inlinable func clip(path: Path2D, fillRule: CanvasFillRule? = nil) { + let this = jsObject + _ = this[Strings.clip].function!(this: this, arguments: [path.jsValue, fillRule?.jsValue ?? .undefined]) + } + + @inlinable func isPointInPath(x: Double, y: Double, fillRule: CanvasFillRule? = nil) -> Bool { + let this = jsObject + return this[Strings.isPointInPath].function!(this: this, arguments: [x.jsValue, y.jsValue, fillRule?.jsValue ?? .undefined]).fromJSValue()! + } + + @inlinable func isPointInPath(path: Path2D, x: Double, y: Double, fillRule: CanvasFillRule? = nil) -> Bool { + let this = jsObject + return this[Strings.isPointInPath].function!(this: this, arguments: [path.jsValue, x.jsValue, y.jsValue, fillRule?.jsValue ?? .undefined]).fromJSValue()! + } + + @inlinable func isPointInStroke(x: Double, y: Double) -> Bool { + let this = jsObject + return this[Strings.isPointInStroke].function!(this: this, arguments: [x.jsValue, y.jsValue]).fromJSValue()! + } + + @inlinable func isPointInStroke(path: Path2D, x: Double, y: Double) -> Bool { + let this = jsObject + return this[Strings.isPointInStroke].function!(this: this, arguments: [path.jsValue, x.jsValue, y.jsValue]).fromJSValue()! + } +} + +public enum CanvasFillRule: JSString, JSValueCompatible { + case nonzero = "nonzero" + case evenodd = "evenodd" + + @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 CanvasFillStrokeStyles: JSBridgedClass {} +public extension CanvasFillStrokeStyles { + @inlinable var strokeStyle: CanvasGradient_or_CanvasPattern_or_String { + get { ReadWriteAttribute[Strings.strokeStyle, in: jsObject] } + nonmutating set { ReadWriteAttribute[Strings.strokeStyle, in: jsObject] = newValue } + } + + @inlinable var fillStyle: CanvasGradient_or_CanvasPattern_or_String { + get { ReadWriteAttribute[Strings.fillStyle, in: jsObject] } + nonmutating set { ReadWriteAttribute[Strings.fillStyle, in: jsObject] = newValue } + } + + @inlinable func createLinearGradient(x0: Double, y0: Double, x1: Double, y1: Double) -> CanvasGradient { + let this = jsObject + return this[Strings.createLinearGradient].function!(this: this, arguments: [x0.jsValue, y0.jsValue, x1.jsValue, y1.jsValue]).fromJSValue()! + } + + @inlinable func createRadialGradient(x0: Double, y0: Double, r0: Double, x1: Double, y1: Double, r1: Double) -> CanvasGradient { + let _arg0 = x0.jsValue + let _arg1 = y0.jsValue + let _arg2 = r0.jsValue + let _arg3 = x1.jsValue + let _arg4 = y1.jsValue + let _arg5 = r1.jsValue + let this = jsObject + return this[Strings.createRadialGradient].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5]).fromJSValue()! + } + + @inlinable func createConicGradient(startAngle: Double, x: Double, y: Double) -> CanvasGradient { + let this = jsObject + return this[Strings.createConicGradient].function!(this: this, arguments: [startAngle.jsValue, x.jsValue, y.jsValue]).fromJSValue()! + } + + @inlinable func createPattern(image: CanvasImageSource, repetition: String) -> CanvasPattern? { + let this = jsObject + return this[Strings.createPattern].function!(this: this, arguments: [image.jsValue, repetition.jsValue]).fromJSValue()! + } +} + +public class CanvasFilter: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.CanvasFilter].function! } + + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { + self.jsObject = jsObject + } + + @inlinable public convenience init(filters: CanvasFilterInput_or_seq_of_CanvasFilterInput? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [filters?.jsValue ?? .undefined])) + } +} + +public protocol CanvasFilters: JSBridgedClass {} +public extension CanvasFilters { + @inlinable var filter: CanvasFilter_or_String { + get { ReadWriteAttribute[Strings.filter, in: jsObject] } + nonmutating set { ReadWriteAttribute[Strings.filter, in: jsObject] = newValue } + } +} + +public enum CanvasFontKerning: JSString, JSValueCompatible { + case auto = "auto" + case normal = "normal" + case none = "none" + + @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 CanvasFontStretch: JSString, JSValueCompatible { + case ultraCondensed = "ultra-condensed" + case extraCondensed = "extra-condensed" + case condensed = "condensed" + case semiCondensed = "semi-condensed" + case normal = "normal" + case semiExpanded = "semi-expanded" + case expanded = "expanded" + case extraExpanded = "extra-expanded" + case ultraExpanded = "ultra-expanded" + + @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 CanvasFontVariantCaps: JSString, JSValueCompatible { + case normal = "normal" + case smallCaps = "small-caps" + case allSmallCaps = "all-small-caps" + case petiteCaps = "petite-caps" + case allPetiteCaps = "all-petite-caps" + case unicase = "unicase" + case titlingCaps = "titling-caps" + + @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 CanvasGradient: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.CanvasGradient].function! } + + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { + self.jsObject = jsObject + } + + @inlinable public func addColorStop(offset: Double, color: String) { + let this = jsObject + _ = this[Strings.addColorStop].function!(this: this, arguments: [offset.jsValue, color.jsValue]) + } +} public protocol CanvasImageData: JSBridgedClass {} public extension CanvasImageData { @@ -3489,6 +3939,25 @@ public class CloseEventInit: BridgedDictionary { public var reason: String } +public enum CodecState: JSString, JSValueCompatible { + case unconfigured = "unconfigured" + case configured = "configured" + case closed = "closed" + + @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 ColorSpaceConversion: JSString, JSValueCompatible { case none = "none" case `default` = "default" @@ -6298,13 +6767,223 @@ public class ElementInternals: JSBridgedClass, ARIAMixin { public var labels: NodeList } -public enum EndingType: JSString, JSValueCompatible { - case transparent = "transparent" - case native = "native" +public class EncodedAudioChunk: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.EncodedAudioChunk].function! } - @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { + _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type) + _timestamp = ReadonlyAttribute(jsObject: jsObject, name: Strings.timestamp) + _duration = ReadonlyAttribute(jsObject: jsObject, name: Strings.duration) + _byteLength = ReadonlyAttribute(jsObject: jsObject, name: Strings.byteLength) + self.jsObject = jsObject + } + + @inlinable public convenience init(init: EncodedAudioChunkInit) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [`init`.jsValue])) + } + + @ReadonlyAttribute + public var type: EncodedAudioChunkType + + @ReadonlyAttribute + public var timestamp: Int64 + + @ReadonlyAttribute + public var duration: UInt64? + + @ReadonlyAttribute + public var byteLength: UInt32 + + @inlinable public func copyTo(destination: BufferSource) { + let this = jsObject + _ = this[Strings.copyTo].function!(this: this, arguments: [destination.jsValue]) + } +} + +public class EncodedAudioChunkInit: BridgedDictionary { + public convenience init(type: EncodedAudioChunkType, timestamp: Int64, duration: UInt64, data: BufferSource) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.type] = type.jsValue + object[Strings.timestamp] = timestamp.jsValue + object[Strings.duration] = duration.jsValue + object[Strings.data] = data.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _type = ReadWriteAttribute(jsObject: object, name: Strings.type) + _timestamp = ReadWriteAttribute(jsObject: object, name: Strings.timestamp) + _duration = ReadWriteAttribute(jsObject: object, name: Strings.duration) + _data = ReadWriteAttribute(jsObject: object, name: Strings.data) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var type: EncodedAudioChunkType + + @ReadWriteAttribute + public var timestamp: Int64 + + @ReadWriteAttribute + public var duration: UInt64 + + @ReadWriteAttribute + public var data: BufferSource +} + +public class EncodedAudioChunkMetadata: BridgedDictionary { + public convenience init(decoderConfig: AudioDecoderConfig) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.decoderConfig] = decoderConfig.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _decoderConfig = ReadWriteAttribute(jsObject: object, name: Strings.decoderConfig) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var decoderConfig: AudioDecoderConfig +} + +public enum EncodedAudioChunkType: JSString, JSValueCompatible { + case key = "key" + case delta = "delta" + + @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 EncodedVideoChunk: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.EncodedVideoChunk].function! } + + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { + _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type) + _timestamp = ReadonlyAttribute(jsObject: jsObject, name: Strings.timestamp) + _duration = ReadonlyAttribute(jsObject: jsObject, name: Strings.duration) + _byteLength = ReadonlyAttribute(jsObject: jsObject, name: Strings.byteLength) + self.jsObject = jsObject + } + + @inlinable public convenience init(init: EncodedVideoChunkInit) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [`init`.jsValue])) + } + + @ReadonlyAttribute + public var type: EncodedVideoChunkType + + @ReadonlyAttribute + public var timestamp: Int64 + + @ReadonlyAttribute + public var duration: UInt64? + + @ReadonlyAttribute + public var byteLength: UInt32 + + @inlinable public func copyTo(destination: BufferSource) { + let this = jsObject + _ = this[Strings.copyTo].function!(this: this, arguments: [destination.jsValue]) + } +} + +public class EncodedVideoChunkInit: BridgedDictionary { + public convenience init(type: EncodedVideoChunkType, timestamp: Int64, duration: UInt64, data: BufferSource) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.type] = type.jsValue + object[Strings.timestamp] = timestamp.jsValue + object[Strings.duration] = duration.jsValue + object[Strings.data] = data.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _type = ReadWriteAttribute(jsObject: object, name: Strings.type) + _timestamp = ReadWriteAttribute(jsObject: object, name: Strings.timestamp) + _duration = ReadWriteAttribute(jsObject: object, name: Strings.duration) + _data = ReadWriteAttribute(jsObject: object, name: Strings.data) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var type: EncodedVideoChunkType + + @ReadWriteAttribute + public var timestamp: Int64 + + @ReadWriteAttribute + public var duration: UInt64 + + @ReadWriteAttribute + public var data: BufferSource +} + +public class EncodedVideoChunkMetadata: BridgedDictionary { + public convenience init(decoderConfig: VideoDecoderConfig, svc: SvcOutputMetadata, alphaSideData: BufferSource) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.decoderConfig] = decoderConfig.jsValue + object[Strings.svc] = svc.jsValue + object[Strings.alphaSideData] = alphaSideData.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _decoderConfig = ReadWriteAttribute(jsObject: object, name: Strings.decoderConfig) + _svc = ReadWriteAttribute(jsObject: object, name: Strings.svc) + _alphaSideData = ReadWriteAttribute(jsObject: object, name: Strings.alphaSideData) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var decoderConfig: VideoDecoderConfig + + @ReadWriteAttribute + public var svc: SvcOutputMetadata + + @ReadWriteAttribute + public var alphaSideData: BufferSource +} + +public enum EncodedVideoChunkType: JSString, JSValueCompatible { + case key = "key" + case delta = "delta" + + @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 EndingType: JSString, JSValueCompatible { + case transparent = "transparent" + case native = "native" + + @inlinable public static func construct(from jsValue: JSValue) -> Self? { + if let string = jsValue.jsString { + return Self(rawValue: string) } return nil } @@ -10913,6 +11592,25 @@ public class HTMLVideoElement: HTMLMediaElement { public var playsInline: Bool } +public enum HardwareAcceleration: JSString, JSValueCompatible { + case noPreference = "no-preference" + case preferHardware = "prefer-hardware" + case preferSoftware = "prefer-software" + + @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 HashChangeEvent: Event { @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.HashChangeEvent].function! } @@ -11232,92 +11930,302 @@ public class ImageDataSettings: BridgedDictionary { public var colorSpace: PredefinedColorSpace } -public class ImageEncodeOptions: BridgedDictionary { - public convenience init(type: String, quality: Double) { +public class ImageDecodeOptions: BridgedDictionary { + public convenience init(frameIndex: UInt32, completeFramesOnly: Bool) { let object = JSObject.global[Strings.Object].function!.new() - object[Strings.type] = type.jsValue - object[Strings.quality] = quality.jsValue + object[Strings.frameIndex] = frameIndex.jsValue + object[Strings.completeFramesOnly] = completeFramesOnly.jsValue self.init(unsafelyWrapping: object) } public required init(unsafelyWrapping object: JSObject) { - _type = ReadWriteAttribute(jsObject: object, name: Strings.type) - _quality = ReadWriteAttribute(jsObject: object, name: Strings.quality) + _frameIndex = ReadWriteAttribute(jsObject: object, name: Strings.frameIndex) + _completeFramesOnly = ReadWriteAttribute(jsObject: object, name: Strings.completeFramesOnly) super.init(unsafelyWrapping: object) } @ReadWriteAttribute - public var type: String + public var frameIndex: UInt32 @ReadWriteAttribute - public var quality: Double + public var completeFramesOnly: Bool } -public enum ImageOrientation: JSString, JSValueCompatible { - case none = "none" - case flipY = "flipY" - - @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } - return nil +public class ImageDecodeResult: BridgedDictionary { + public convenience init(image: VideoFrame, complete: Bool) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.image] = image.jsValue + object[Strings.complete] = complete.jsValue + self.init(unsafelyWrapping: object) } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) + public required init(unsafelyWrapping object: JSObject) { + _image = ReadWriteAttribute(jsObject: object, name: Strings.image) + _complete = ReadWriteAttribute(jsObject: object, name: Strings.complete) + super.init(unsafelyWrapping: object) } - @inlinable public var jsValue: JSValue { rawValue.jsValue } + @ReadWriteAttribute + public var image: VideoFrame + + @ReadWriteAttribute + public var complete: Bool } -public enum ImageSmoothingQuality: JSString, JSValueCompatible { - case low = "low" - case medium = "medium" - case high = "high" +public class ImageDecoder: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.ImageDecoder].function! } - @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } - return nil + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { + _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type) + _complete = ReadonlyAttribute(jsObject: jsObject, name: Strings.complete) + _completed = ReadonlyAttribute(jsObject: jsObject, name: Strings.completed) + _tracks = ReadonlyAttribute(jsObject: jsObject, name: Strings.tracks) + self.jsObject = jsObject } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) + @inlinable public convenience init(init: ImageDecoderInit) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [`init`.jsValue])) } - @inlinable public var jsValue: JSValue { rawValue.jsValue } -} + @ReadonlyAttribute + public var type: String -public class InputDeviceInfo: MediaDeviceInfo { - @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.InputDeviceInfo].function! } + @ReadonlyAttribute + public var complete: Bool - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) + @ReadonlyAttribute + public var completed: JSPromise + + @ReadonlyAttribute + public var tracks: ImageTrackList + + @inlinable public func decode(options: ImageDecodeOptions? = nil) -> JSPromise { + let this = jsObject + return this[Strings.decode].function!(this: this, arguments: [options?.jsValue ?? .undefined]).fromJSValue()! } - @inlinable public func getCapabilities() -> MediaTrackCapabilities { + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public func decode(options: ImageDecodeOptions? = nil) async throws -> ImageDecodeResult { let this = jsObject - return this[Strings.getCapabilities].function!(this: this, arguments: []).fromJSValue()! + let _promise: JSPromise = this[Strings.decode].function!(this: this, arguments: [options?.jsValue ?? .undefined]).fromJSValue()! + return try await _promise.value.fromJSValue()! } -} -public class InputEvent: UIEvent { - @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.InputEvent].function! } + @inlinable public func reset() { + let this = jsObject + _ = this[Strings.reset].function!(this: this, arguments: []) + } - public required init(unsafelyWrapping jsObject: JSObject) { - _data = ReadonlyAttribute(jsObject: jsObject, name: Strings.data) - _isComposing = ReadonlyAttribute(jsObject: jsObject, name: Strings.isComposing) - _inputType = ReadonlyAttribute(jsObject: jsObject, name: Strings.inputType) - super.init(unsafelyWrapping: jsObject) + @inlinable public func close() { + let this = jsObject + _ = this[Strings.close].function!(this: this, arguments: []) } - @inlinable public convenience init(type: String, eventInitDict: InputEventInit? = nil) { - self.init(unsafelyWrapping: Self.constructor.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined])) + @inlinable public static func isTypeSupported(type: String) -> JSPromise { + let this = constructor + return this[Strings.isTypeSupported].function!(this: this, arguments: [type.jsValue]).fromJSValue()! } - @ReadonlyAttribute + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public static func isTypeSupported(type: String) async throws -> Bool { + let this = constructor + let _promise: JSPromise = this[Strings.isTypeSupported].function!(this: this, arguments: [type.jsValue]).fromJSValue()! + return try await _promise.value.fromJSValue()! + } +} + +public class ImageDecoderInit: BridgedDictionary { + public convenience init(type: String, data: ImageBufferSource, premultiplyAlpha: PremultiplyAlpha, colorSpaceConversion: ColorSpaceConversion, desiredWidth: UInt32, desiredHeight: UInt32, preferAnimation: Bool) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.type] = type.jsValue + object[Strings.data] = data.jsValue + object[Strings.premultiplyAlpha] = premultiplyAlpha.jsValue + object[Strings.colorSpaceConversion] = colorSpaceConversion.jsValue + object[Strings.desiredWidth] = desiredWidth.jsValue + object[Strings.desiredHeight] = desiredHeight.jsValue + object[Strings.preferAnimation] = preferAnimation.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _type = ReadWriteAttribute(jsObject: object, name: Strings.type) + _data = ReadWriteAttribute(jsObject: object, name: Strings.data) + _premultiplyAlpha = ReadWriteAttribute(jsObject: object, name: Strings.premultiplyAlpha) + _colorSpaceConversion = ReadWriteAttribute(jsObject: object, name: Strings.colorSpaceConversion) + _desiredWidth = ReadWriteAttribute(jsObject: object, name: Strings.desiredWidth) + _desiredHeight = ReadWriteAttribute(jsObject: object, name: Strings.desiredHeight) + _preferAnimation = ReadWriteAttribute(jsObject: object, name: Strings.preferAnimation) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var type: String + + @ReadWriteAttribute + public var data: ImageBufferSource + + @ReadWriteAttribute + public var premultiplyAlpha: PremultiplyAlpha + + @ReadWriteAttribute + public var colorSpaceConversion: ColorSpaceConversion + + @ReadWriteAttribute + public var desiredWidth: UInt32 + + @ReadWriteAttribute + public var desiredHeight: UInt32 + + @ReadWriteAttribute + public var preferAnimation: Bool +} + +public class ImageEncodeOptions: BridgedDictionary { + public convenience init(type: String, quality: Double) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.type] = type.jsValue + object[Strings.quality] = quality.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _type = ReadWriteAttribute(jsObject: object, name: Strings.type) + _quality = ReadWriteAttribute(jsObject: object, name: Strings.quality) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var type: String + + @ReadWriteAttribute + public var quality: Double +} + +public enum ImageOrientation: JSString, JSValueCompatible { + case none = "none" + case flipY = "flipY" + + @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 ImageSmoothingQuality: JSString, JSValueCompatible { + case low = "low" + case medium = "medium" + case high = "high" + + @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 ImageTrack: EventTarget { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.ImageTrack].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _animated = ReadonlyAttribute(jsObject: jsObject, name: Strings.animated) + _frameCount = ReadonlyAttribute(jsObject: jsObject, name: Strings.frameCount) + _repetitionCount = ReadonlyAttribute(jsObject: jsObject, name: Strings.repetitionCount) + _onchange = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onchange) + _selected = ReadWriteAttribute(jsObject: jsObject, name: Strings.selected) + super.init(unsafelyWrapping: jsObject) + } + + @ReadonlyAttribute + public var animated: Bool + + @ReadonlyAttribute + public var frameCount: UInt32 + + @ReadonlyAttribute + public var repetitionCount: Float + + @ClosureAttribute1Optional + public var onchange: EventHandler + + @ReadWriteAttribute + public var selected: Bool +} + +public class ImageTrackList: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.ImageTrackList].function! } + + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { + _ready = ReadonlyAttribute(jsObject: jsObject, name: Strings.ready) + _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) + _selectedIndex = ReadonlyAttribute(jsObject: jsObject, name: Strings.selectedIndex) + _selectedTrack = ReadonlyAttribute(jsObject: jsObject, name: Strings.selectedTrack) + self.jsObject = jsObject + } + + @inlinable public subscript(key: Int) -> ImageTrack { + jsObject[key].fromJSValue()! + } + + @ReadonlyAttribute + public var ready: JSPromise + + @ReadonlyAttribute + public var length: UInt32 + + @ReadonlyAttribute + public var selectedIndex: Int32 + + @ReadonlyAttribute + public var selectedTrack: ImageTrack? +} + +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! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _data = ReadonlyAttribute(jsObject: jsObject, name: Strings.data) + _isComposing = ReadonlyAttribute(jsObject: jsObject, name: Strings.isComposing) + _inputType = ReadonlyAttribute(jsObject: jsObject, name: Strings.inputType) + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(type: String, eventInitDict: InputEventInit? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined])) + } + + @ReadonlyAttribute public var data: String? @ReadonlyAttribute @@ -11575,6 +12483,24 @@ public class KeyframeEffectOptions: BridgedDictionary { public var pseudoElement: String? } +public enum LatencyMode: JSString, JSValueCompatible { + case quality = "quality" + case realtime = "realtime" + + @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 Location: JSBridgedClass { @inlinable public class var constructor: JSFunction { JSObject.global[Strings.Location].function! } @@ -14382,6 +15308,27 @@ public class PeriodicWaveOptions: BridgedDictionary { public var imag: [Float] } +public class PlaneLayout: BridgedDictionary { + public convenience init(offset: UInt32, stride: UInt32) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.offset] = offset.jsValue + object[Strings.stride] = stride.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _offset = ReadWriteAttribute(jsObject: object, name: Strings.offset) + _stride = ReadWriteAttribute(jsObject: object, name: Strings.stride) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var offset: UInt32 + + @ReadWriteAttribute + public var stride: UInt32 +} + public enum PlaybackDirection: JSString, JSValueCompatible { case normal = "normal" case reverse = "reverse" @@ -16407,6 +17354,22 @@ public class SubmitEventInit: BridgedDictionary { public var submitter: HTMLElement? } +public class SvcOutputMetadata: BridgedDictionary { + public convenience init(temporalLayerId: UInt32) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.temporalLayerId] = temporalLayerId.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _temporalLayerId = ReadWriteAttribute(jsObject: object, name: Strings.temporalLayerId) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var temporalLayerId: UInt32 +} + public class Text: CharacterData, Slottable, GeometryUtils { @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.Text].function! } @@ -16799,539 +17762,1241 @@ public class TransformStreamDefaultController: JSBridgedClass { } } -public class Transformer: BridgedDictionary { - public convenience init(start: @escaping TransformerStartCallback, transform: @escaping TransformerTransformCallback, flush: @escaping TransformerFlushCallback, readableType: JSValue, writableType: JSValue) { +public class Transformer: BridgedDictionary { + public convenience init(start: @escaping TransformerStartCallback, transform: @escaping TransformerTransformCallback, flush: @escaping TransformerFlushCallback, readableType: JSValue, writableType: JSValue) { + let object = JSObject.global[Strings.Object].function!.new() + ClosureAttribute1[Strings.start, in: object] = start + ClosureAttribute2[Strings.transform, in: object] = transform + ClosureAttribute1[Strings.flush, in: object] = flush + object[Strings.readableType] = readableType.jsValue + object[Strings.writableType] = writableType.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _start = ClosureAttribute1(jsObject: object, name: Strings.start) + _transform = ClosureAttribute2(jsObject: object, name: Strings.transform) + _flush = ClosureAttribute1(jsObject: object, name: Strings.flush) + _readableType = ReadWriteAttribute(jsObject: object, name: Strings.readableType) + _writableType = ReadWriteAttribute(jsObject: object, name: Strings.writableType) + super.init(unsafelyWrapping: object) + } + + @ClosureAttribute1 + public var start: TransformerStartCallback + + @ClosureAttribute2 + public var transform: TransformerTransformCallback + + @ClosureAttribute1 + public var flush: TransformerFlushCallback + + @ReadWriteAttribute + public var readableType: JSValue + + @ReadWriteAttribute + public var writableType: JSValue +} + +public class TreeWalker: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.TreeWalker].function! } + + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { + _root = ReadonlyAttribute(jsObject: jsObject, name: Strings.root) + _whatToShow = ReadonlyAttribute(jsObject: jsObject, name: Strings.whatToShow) + _currentNode = ReadWriteAttribute(jsObject: jsObject, name: Strings.currentNode) + self.jsObject = jsObject + } + + @ReadonlyAttribute + public var root: Node + + @ReadonlyAttribute + public var whatToShow: UInt32 + + // XXX: member 'filter' is ignored + + @ReadWriteAttribute + public var currentNode: Node + + @inlinable public func parentNode() -> Node? { + let this = jsObject + return this[Strings.parentNode].function!(this: this, arguments: []).fromJSValue()! + } + + @inlinable public func firstChild() -> Node? { + let this = jsObject + return this[Strings.firstChild].function!(this: this, arguments: []).fromJSValue()! + } + + @inlinable public func lastChild() -> Node? { + let this = jsObject + return this[Strings.lastChild].function!(this: this, arguments: []).fromJSValue()! + } + + @inlinable public func previousSibling() -> Node? { + let this = jsObject + return this[Strings.previousSibling].function!(this: this, arguments: []).fromJSValue()! + } + + @inlinable public func nextSibling() -> Node? { + let this = jsObject + return this[Strings.nextSibling].function!(this: this, arguments: []).fromJSValue()! + } + + @inlinable public func previousNode() -> Node? { + let this = jsObject + return this[Strings.previousNode].function!(this: this, arguments: []).fromJSValue()! + } + + @inlinable public func nextNode() -> Node? { + let this = jsObject + return this[Strings.nextNode].function!(this: this, arguments: []).fromJSValue()! + } +} + +public typealias CanvasFilterInput = [String: JSValue] + +public typealias EventHandler = EventHandlerNonNull? +public typealias OnErrorEventHandler = OnErrorEventHandlerNonNull? +public typealias OnBeforeUnloadEventHandler = OnBeforeUnloadEventHandlerNonNull? + +public typealias DOMHighResTimeStamp = Double +public typealias EpochTimeStamp = UInt64 + +public typealias DOMTimeStamp = UInt64 + +public typealias MutationCallback = ([MutationRecord], MutationObserver) -> Void +public typealias BlobCallback = (Blob?) -> Void +public typealias FunctionStringCallback = (String) -> Void +public typealias EventHandlerNonNull = (Event) -> JSValue +public typealias OnErrorEventHandlerNonNull = (Event_or_String, String, UInt32, UInt32, JSValue) -> JSValue +public typealias OnBeforeUnloadEventHandlerNonNull = (Event) -> String? +public typealias FrameRequestCallback = (DOMHighResTimeStamp) -> Void +public typealias VoidFunction = () -> Void +public typealias UnderlyingSourceStartCallback = (ReadableStreamController) -> JSValue +public typealias UnderlyingSourcePullCallback = (ReadableStreamController) -> JSPromise +public typealias UnderlyingSourceCancelCallback = (JSValue) -> JSPromise +public typealias UnderlyingSinkStartCallback = (WritableStreamDefaultController) -> JSValue +public typealias UnderlyingSinkWriteCallback = (JSValue, WritableStreamDefaultController) -> JSPromise +public typealias UnderlyingSinkCloseCallback = () -> JSPromise +public typealias UnderlyingSinkAbortCallback = (JSValue) -> JSPromise +public typealias TransformerStartCallback = (TransformStreamDefaultController) -> JSValue +public typealias TransformerFlushCallback = (TransformStreamDefaultController) -> JSPromise +public typealias TransformerTransformCallback = (JSValue, TransformStreamDefaultController) -> JSPromise +public typealias QueuingStrategySize = (JSValue) -> Double +public typealias DecodeErrorCallback = (DOMException) -> Void +public typealias DecodeSuccessCallback = (AudioBuffer) -> Void +public typealias AudioWorkletProcessCallback = ([[Float32Array]], [[Float32Array]], JSObject) -> Bool +public typealias NavigatorUserMediaSuccessCallback = (MediaStream) -> Void +public typealias NavigatorUserMediaErrorCallback = (DOMException) -> Void +public typealias AudioDataOutputCallback = (AudioData) -> Void +public typealias VideoFrameOutputCallback = (VideoFrame) -> Void +public typealias EncodedAudioChunkOutputCallback = (EncodedAudioChunk, EncodedAudioChunkMetadata) -> Void +public typealias EncodedVideoChunkOutputCallback = (EncodedVideoChunk, EncodedVideoChunkMetadata) -> Void +public typealias WebCodecsErrorCallback = (DOMException) -> Void +public class UIEvent: Event { + @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.UIEvent].function! } + + public required init(unsafelyWrapping jsObject: JSObject) { + _view = ReadonlyAttribute(jsObject: jsObject, name: Strings.view) + _detail = ReadonlyAttribute(jsObject: jsObject, name: Strings.detail) + _which = ReadonlyAttribute(jsObject: jsObject, name: Strings.which) + super.init(unsafelyWrapping: jsObject) + } + + @inlinable public convenience init(type: String, eventInitDict: UIEventInit? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined])) + } + + @ReadonlyAttribute + public var view: Window? + + @ReadonlyAttribute + public var detail: Int32 + + @inlinable public func initUIEvent(typeArg: String, bubblesArg: Bool? = nil, cancelableArg: Bool? = nil, viewArg: Window? = nil, detailArg: Int32? = nil) { + let this = jsObject + _ = this[Strings.initUIEvent].function!(this: this, arguments: [typeArg.jsValue, bubblesArg?.jsValue ?? .undefined, cancelableArg?.jsValue ?? .undefined, viewArg?.jsValue ?? .undefined, detailArg?.jsValue ?? .undefined]) + } + + @ReadonlyAttribute + public var which: UInt32 +} + +public class UIEventInit: BridgedDictionary { + public convenience init(view: Window?, detail: Int32, which: UInt32) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.view] = view.jsValue + object[Strings.detail] = detail.jsValue + object[Strings.which] = which.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _view = ReadWriteAttribute(jsObject: object, name: Strings.view) + _detail = ReadWriteAttribute(jsObject: object, name: Strings.detail) + _which = ReadWriteAttribute(jsObject: object, name: Strings.which) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var view: Window? + + @ReadWriteAttribute + public var detail: Int32 + + @ReadWriteAttribute + 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! } + + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { + _href = ReadWriteAttribute(jsObject: jsObject, name: Strings.href) + _origin = ReadonlyAttribute(jsObject: jsObject, name: Strings.origin) + _protocol = ReadWriteAttribute(jsObject: jsObject, name: Strings.protocol) + _username = ReadWriteAttribute(jsObject: jsObject, name: Strings.username) + _password = ReadWriteAttribute(jsObject: jsObject, name: Strings.password) + _host = ReadWriteAttribute(jsObject: jsObject, name: Strings.host) + _hostname = ReadWriteAttribute(jsObject: jsObject, name: Strings.hostname) + _port = ReadWriteAttribute(jsObject: jsObject, name: Strings.port) + _pathname = ReadWriteAttribute(jsObject: jsObject, name: Strings.pathname) + _search = ReadWriteAttribute(jsObject: jsObject, name: Strings.search) + _searchParams = ReadonlyAttribute(jsObject: jsObject, name: Strings.searchParams) + _hash = ReadWriteAttribute(jsObject: jsObject, name: Strings.hash) + self.jsObject = jsObject + } + + @inlinable public static func createObjectURL(obj: Blob_or_MediaSource) -> String { + let this = constructor + return this[Strings.createObjectURL].function!(this: this, arguments: [obj.jsValue]).fromJSValue()! + } + + @inlinable public static func revokeObjectURL(url: String) { + let this = constructor + _ = this[Strings.revokeObjectURL].function!(this: this, arguments: [url.jsValue]) + } + + @inlinable public convenience init(url: String, base: String? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [url.jsValue, base?.jsValue ?? .undefined])) + } + + @ReadWriteAttribute + public var href: String + + @ReadonlyAttribute + public var origin: String + + @ReadWriteAttribute + public var `protocol`: String + + @ReadWriteAttribute + public var username: String + + @ReadWriteAttribute + public var password: String + + @ReadWriteAttribute + public var host: String + + @ReadWriteAttribute + public var hostname: String + + @ReadWriteAttribute + public var port: String + + @ReadWriteAttribute + public var pathname: String + + @ReadWriteAttribute + public var search: String + + @ReadonlyAttribute + public var searchParams: URLSearchParams + + @ReadWriteAttribute + public var hash: String + + @inlinable public func toJSON() -> String { + let this = jsObject + return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()! + } +} + +public class URLSearchParams: JSBridgedClass, Sequence { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.URLSearchParams].function! } + + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { + self.jsObject = jsObject + } + + @inlinable public convenience init(init: String_or_record_String_to_String_or_seq_of_seq_of_String? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [`init`?.jsValue ?? .undefined])) + } + + @inlinable public func append(name: String, value: String) { + let this = jsObject + _ = this[Strings.append].function!(this: this, arguments: [name.jsValue, value.jsValue]) + } + + @inlinable public func delete(name: String) { + let this = jsObject + _ = this[Strings.delete].function!(this: this, arguments: [name.jsValue]) + } + + @inlinable public func get(name: String) -> String? { + let this = jsObject + return this[Strings.get].function!(this: this, arguments: [name.jsValue]).fromJSValue()! + } + + @inlinable public func getAll(name: String) -> [String] { + let this = jsObject + return this[Strings.getAll].function!(this: this, arguments: [name.jsValue]).fromJSValue()! + } + + @inlinable public func has(name: String) -> Bool { + let this = jsObject + return this[Strings.has].function!(this: this, arguments: [name.jsValue]).fromJSValue()! + } + + @inlinable public func set(name: String, value: String) { + let this = jsObject + _ = this[Strings.set].function!(this: this, arguments: [name.jsValue, value.jsValue]) + } + + @inlinable public func sort() { + let this = jsObject + _ = this[Strings.sort].function!(this: this, arguments: []) + } + + public typealias Element = String + public func makeIterator() -> ValueIterableIterator { + ValueIterableIterator(sequence: self) + } + + @inlinable public var description: String { + jsObject[Strings.toString]!().fromJSValue()! + } +} + +public class UnderlyingSink: BridgedDictionary { + public convenience init(start: @escaping UnderlyingSinkStartCallback, write: @escaping UnderlyingSinkWriteCallback, close: @escaping UnderlyingSinkCloseCallback, abort: @escaping UnderlyingSinkAbortCallback, type: JSValue) { + let object = JSObject.global[Strings.Object].function!.new() + ClosureAttribute1[Strings.start, in: object] = start + ClosureAttribute2[Strings.write, in: object] = write + ClosureAttribute0[Strings.close, in: object] = close + ClosureAttribute1[Strings.abort, in: object] = abort + object[Strings.type] = type.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _start = ClosureAttribute1(jsObject: object, name: Strings.start) + _write = ClosureAttribute2(jsObject: object, name: Strings.write) + _close = ClosureAttribute0(jsObject: object, name: Strings.close) + _abort = ClosureAttribute1(jsObject: object, name: Strings.abort) + _type = ReadWriteAttribute(jsObject: object, name: Strings.type) + super.init(unsafelyWrapping: object) + } + + @ClosureAttribute1 + public var start: UnderlyingSinkStartCallback + + @ClosureAttribute2 + public var write: UnderlyingSinkWriteCallback + + @ClosureAttribute0 + public var close: UnderlyingSinkCloseCallback + + @ClosureAttribute1 + public var abort: UnderlyingSinkAbortCallback + + @ReadWriteAttribute + public var type: JSValue +} + +public class UnderlyingSource: BridgedDictionary { + public convenience init(start: @escaping UnderlyingSourceStartCallback, pull: @escaping UnderlyingSourcePullCallback, cancel: @escaping UnderlyingSourceCancelCallback, type: ReadableStreamType, autoAllocateChunkSize: UInt64) { let object = JSObject.global[Strings.Object].function!.new() ClosureAttribute1[Strings.start, in: object] = start - ClosureAttribute2[Strings.transform, in: object] = transform - ClosureAttribute1[Strings.flush, in: object] = flush - object[Strings.readableType] = readableType.jsValue - object[Strings.writableType] = writableType.jsValue + ClosureAttribute1[Strings.pull, in: object] = pull + ClosureAttribute1[Strings.cancel, in: object] = cancel + object[Strings.type] = type.jsValue + object[Strings.autoAllocateChunkSize] = autoAllocateChunkSize.jsValue self.init(unsafelyWrapping: object) } public required init(unsafelyWrapping object: JSObject) { _start = ClosureAttribute1(jsObject: object, name: Strings.start) - _transform = ClosureAttribute2(jsObject: object, name: Strings.transform) - _flush = ClosureAttribute1(jsObject: object, name: Strings.flush) - _readableType = ReadWriteAttribute(jsObject: object, name: Strings.readableType) - _writableType = ReadWriteAttribute(jsObject: object, name: Strings.writableType) + _pull = ClosureAttribute1(jsObject: object, name: Strings.pull) + _cancel = ClosureAttribute1(jsObject: object, name: Strings.cancel) + _type = ReadWriteAttribute(jsObject: object, name: Strings.type) + _autoAllocateChunkSize = ReadWriteAttribute(jsObject: object, name: Strings.autoAllocateChunkSize) super.init(unsafelyWrapping: object) } @ClosureAttribute1 - public var start: TransformerStartCallback + public var start: UnderlyingSourceStartCallback - @ClosureAttribute2 - public var transform: TransformerTransformCallback + @ClosureAttribute1 + public var pull: UnderlyingSourcePullCallback @ClosureAttribute1 - public var flush: TransformerFlushCallback + public var cancel: UnderlyingSourceCancelCallback @ReadWriteAttribute - public var readableType: JSValue + public var type: ReadableStreamType @ReadWriteAttribute - public var writableType: JSValue + public var autoAllocateChunkSize: UInt64 } -public class TreeWalker: JSBridgedClass { - @inlinable public class var constructor: JSFunction { JSObject.global[Strings.TreeWalker].function! } +public class ValidityState: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.ValidityState].function! } public let jsObject: JSObject public required init(unsafelyWrapping jsObject: JSObject) { - _root = ReadonlyAttribute(jsObject: jsObject, name: Strings.root) - _whatToShow = ReadonlyAttribute(jsObject: jsObject, name: Strings.whatToShow) - _currentNode = ReadWriteAttribute(jsObject: jsObject, name: Strings.currentNode) + _valueMissing = ReadonlyAttribute(jsObject: jsObject, name: Strings.valueMissing) + _typeMismatch = ReadonlyAttribute(jsObject: jsObject, name: Strings.typeMismatch) + _patternMismatch = ReadonlyAttribute(jsObject: jsObject, name: Strings.patternMismatch) + _tooLong = ReadonlyAttribute(jsObject: jsObject, name: Strings.tooLong) + _tooShort = ReadonlyAttribute(jsObject: jsObject, name: Strings.tooShort) + _rangeUnderflow = ReadonlyAttribute(jsObject: jsObject, name: Strings.rangeUnderflow) + _rangeOverflow = ReadonlyAttribute(jsObject: jsObject, name: Strings.rangeOverflow) + _stepMismatch = ReadonlyAttribute(jsObject: jsObject, name: Strings.stepMismatch) + _badInput = ReadonlyAttribute(jsObject: jsObject, name: Strings.badInput) + _customError = ReadonlyAttribute(jsObject: jsObject, name: Strings.customError) + _valid = ReadonlyAttribute(jsObject: jsObject, name: Strings.valid) self.jsObject = jsObject } @ReadonlyAttribute - public var root: Node + public var valueMissing: Bool @ReadonlyAttribute - public var whatToShow: UInt32 + public var typeMismatch: Bool - // XXX: member 'filter' is ignored + @ReadonlyAttribute + public var patternMismatch: Bool - @ReadWriteAttribute - public var currentNode: Node + @ReadonlyAttribute + public var tooLong: Bool - @inlinable public func parentNode() -> Node? { - let this = jsObject - return this[Strings.parentNode].function!(this: this, arguments: []).fromJSValue()! - } + @ReadonlyAttribute + public var tooShort: Bool - @inlinable public func firstChild() -> Node? { - let this = jsObject - return this[Strings.firstChild].function!(this: this, arguments: []).fromJSValue()! - } + @ReadonlyAttribute + public var rangeUnderflow: Bool - @inlinable public func lastChild() -> Node? { - let this = jsObject - return this[Strings.lastChild].function!(this: this, arguments: []).fromJSValue()! - } + @ReadonlyAttribute + public var rangeOverflow: Bool - @inlinable public func previousSibling() -> Node? { - let this = jsObject - return this[Strings.previousSibling].function!(this: this, arguments: []).fromJSValue()! - } + @ReadonlyAttribute + public var stepMismatch: Bool - @inlinable public func nextSibling() -> Node? { - let this = jsObject - return this[Strings.nextSibling].function!(this: this, arguments: []).fromJSValue()! - } + @ReadonlyAttribute + public var badInput: Bool - @inlinable public func previousNode() -> Node? { - let this = jsObject - return this[Strings.previousNode].function!(this: this, arguments: []).fromJSValue()! + @ReadonlyAttribute + public var customError: Bool + + @ReadonlyAttribute + public var valid: Bool +} + +public class ValidityStateFlags: BridgedDictionary { + public convenience init(valueMissing: Bool, typeMismatch: Bool, patternMismatch: Bool, tooLong: Bool, tooShort: Bool, rangeUnderflow: Bool, rangeOverflow: Bool, stepMismatch: Bool, badInput: Bool, customError: Bool) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.valueMissing] = valueMissing.jsValue + object[Strings.typeMismatch] = typeMismatch.jsValue + object[Strings.patternMismatch] = patternMismatch.jsValue + object[Strings.tooLong] = tooLong.jsValue + object[Strings.tooShort] = tooShort.jsValue + object[Strings.rangeUnderflow] = rangeUnderflow.jsValue + object[Strings.rangeOverflow] = rangeOverflow.jsValue + object[Strings.stepMismatch] = stepMismatch.jsValue + object[Strings.badInput] = badInput.jsValue + object[Strings.customError] = customError.jsValue + self.init(unsafelyWrapping: object) } - @inlinable public func nextNode() -> Node? { - let this = jsObject - return this[Strings.nextNode].function!(this: this, arguments: []).fromJSValue()! + public required init(unsafelyWrapping object: JSObject) { + _valueMissing = ReadWriteAttribute(jsObject: object, name: Strings.valueMissing) + _typeMismatch = ReadWriteAttribute(jsObject: object, name: Strings.typeMismatch) + _patternMismatch = ReadWriteAttribute(jsObject: object, name: Strings.patternMismatch) + _tooLong = ReadWriteAttribute(jsObject: object, name: Strings.tooLong) + _tooShort = ReadWriteAttribute(jsObject: object, name: Strings.tooShort) + _rangeUnderflow = ReadWriteAttribute(jsObject: object, name: Strings.rangeUnderflow) + _rangeOverflow = ReadWriteAttribute(jsObject: object, name: Strings.rangeOverflow) + _stepMismatch = ReadWriteAttribute(jsObject: object, name: Strings.stepMismatch) + _badInput = ReadWriteAttribute(jsObject: object, name: Strings.badInput) + _customError = ReadWriteAttribute(jsObject: object, name: Strings.customError) + super.init(unsafelyWrapping: object) } -} -public typealias CanvasFilterInput = [String: JSValue] + @ReadWriteAttribute + public var valueMissing: Bool -public typealias EventHandler = EventHandlerNonNull? -public typealias OnErrorEventHandler = OnErrorEventHandlerNonNull? -public typealias OnBeforeUnloadEventHandler = OnBeforeUnloadEventHandlerNonNull? + @ReadWriteAttribute + public var typeMismatch: Bool -public typealias DOMHighResTimeStamp = Double -public typealias EpochTimeStamp = UInt64 + @ReadWriteAttribute + public var patternMismatch: Bool -public typealias DOMTimeStamp = UInt64 + @ReadWriteAttribute + public var tooLong: Bool -public typealias MutationCallback = ([MutationRecord], MutationObserver) -> Void -public typealias BlobCallback = (Blob?) -> Void -public typealias FunctionStringCallback = (String) -> Void -public typealias EventHandlerNonNull = (Event) -> JSValue -public typealias OnErrorEventHandlerNonNull = (Event_or_String, String, UInt32, UInt32, JSValue) -> JSValue -public typealias OnBeforeUnloadEventHandlerNonNull = (Event) -> String? -public typealias FrameRequestCallback = (DOMHighResTimeStamp) -> Void -public typealias VoidFunction = () -> Void -public typealias UnderlyingSourceStartCallback = (ReadableStreamController) -> JSValue -public typealias UnderlyingSourcePullCallback = (ReadableStreamController) -> JSPromise -public typealias UnderlyingSourceCancelCallback = (JSValue) -> JSPromise -public typealias UnderlyingSinkStartCallback = (WritableStreamDefaultController) -> JSValue -public typealias UnderlyingSinkWriteCallback = (JSValue, WritableStreamDefaultController) -> JSPromise -public typealias UnderlyingSinkCloseCallback = () -> JSPromise -public typealias UnderlyingSinkAbortCallback = (JSValue) -> JSPromise -public typealias TransformerStartCallback = (TransformStreamDefaultController) -> JSValue -public typealias TransformerFlushCallback = (TransformStreamDefaultController) -> JSPromise -public typealias TransformerTransformCallback = (JSValue, TransformStreamDefaultController) -> JSPromise -public typealias QueuingStrategySize = (JSValue) -> Double -public typealias DecodeErrorCallback = (DOMException) -> Void -public typealias DecodeSuccessCallback = (AudioBuffer) -> Void -public typealias AudioWorkletProcessCallback = ([[Float32Array]], [[Float32Array]], JSObject) -> Bool -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! } + @ReadWriteAttribute + public var tooShort: Bool - public required init(unsafelyWrapping jsObject: JSObject) { - _view = ReadonlyAttribute(jsObject: jsObject, name: Strings.view) - _detail = ReadonlyAttribute(jsObject: jsObject, name: Strings.detail) - _which = ReadonlyAttribute(jsObject: jsObject, name: Strings.which) - super.init(unsafelyWrapping: jsObject) - } + @ReadWriteAttribute + public var rangeUnderflow: Bool - @inlinable public convenience init(type: String, eventInitDict: UIEventInit? = nil) { - self.init(unsafelyWrapping: Self.constructor.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined])) - } + @ReadWriteAttribute + public var rangeOverflow: Bool - @ReadonlyAttribute - public var view: Window? + @ReadWriteAttribute + public var stepMismatch: Bool - @ReadonlyAttribute - public var detail: Int32 + @ReadWriteAttribute + public var badInput: Bool - @inlinable public func initUIEvent(typeArg: String, bubblesArg: Bool? = nil, cancelableArg: Bool? = nil, viewArg: Window? = nil, detailArg: Int32? = nil) { - let this = jsObject - _ = this[Strings.initUIEvent].function!(this: this, arguments: [typeArg.jsValue, bubblesArg?.jsValue ?? .undefined, cancelableArg?.jsValue ?? .undefined, viewArg?.jsValue ?? .undefined, detailArg?.jsValue ?? .undefined]) + @ReadWriteAttribute + public var customError: Bool +} + +public enum VideoColorPrimaries: JSString, JSValueCompatible { + case bt709 = "bt709" + case bt470bg = "bt470bg" + case smpte170m = "smpte170m" + + @inlinable public static func construct(from jsValue: JSValue) -> Self? { + if let string = jsValue.jsString { + return Self(rawValue: string) + } + return nil } - @ReadonlyAttribute - public var which: UInt32 + @inlinable public init?(string: String) { + self.init(rawValue: JSString(string)) + } + + @inlinable public var jsValue: JSValue { rawValue.jsValue } } -public class UIEventInit: BridgedDictionary { - public convenience init(view: Window?, detail: Int32, which: UInt32) { - let object = JSObject.global[Strings.Object].function!.new() - object[Strings.view] = view.jsValue - object[Strings.detail] = detail.jsValue - object[Strings.which] = which.jsValue - self.init(unsafelyWrapping: object) +public class VideoColorSpace: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.VideoColorSpace].function! } + + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { + _primaries = ReadonlyAttribute(jsObject: jsObject, name: Strings.primaries) + _transfer = ReadonlyAttribute(jsObject: jsObject, name: Strings.transfer) + _matrix = ReadonlyAttribute(jsObject: jsObject, name: Strings.matrix) + _fullRange = ReadonlyAttribute(jsObject: jsObject, name: Strings.fullRange) + self.jsObject = jsObject } - public required init(unsafelyWrapping object: JSObject) { - _view = ReadWriteAttribute(jsObject: object, name: Strings.view) - _detail = ReadWriteAttribute(jsObject: object, name: Strings.detail) - _which = ReadWriteAttribute(jsObject: object, name: Strings.which) - super.init(unsafelyWrapping: object) + @inlinable public convenience init(init: VideoColorSpaceInit? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [`init`?.jsValue ?? .undefined])) } - @ReadWriteAttribute - public var view: Window? + @ReadonlyAttribute + public var primaries: VideoColorPrimaries? - @ReadWriteAttribute - public var detail: Int32 + @ReadonlyAttribute + public var transfer: VideoTransferCharacteristics? - @ReadWriteAttribute - public var which: UInt32 + @ReadonlyAttribute + public var matrix: VideoMatrixCoefficients? + + @ReadonlyAttribute + public var fullRange: Bool? + + @inlinable public func toJSON() -> VideoColorSpaceInit { + let this = jsObject + return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()! + } } -public class ULongRange: BridgedDictionary { - public convenience init(max: UInt32, min: UInt32) { +public class VideoColorSpaceInit: BridgedDictionary { + public convenience init(primaries: VideoColorPrimaries, transfer: VideoTransferCharacteristics, matrix: VideoMatrixCoefficients, fullRange: Bool) { let object = JSObject.global[Strings.Object].function!.new() - object[Strings.max] = max.jsValue - object[Strings.min] = min.jsValue + object[Strings.primaries] = primaries.jsValue + object[Strings.transfer] = transfer.jsValue + object[Strings.matrix] = matrix.jsValue + object[Strings.fullRange] = fullRange.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) + _primaries = ReadWriteAttribute(jsObject: object, name: Strings.primaries) + _transfer = ReadWriteAttribute(jsObject: object, name: Strings.transfer) + _matrix = ReadWriteAttribute(jsObject: object, name: Strings.matrix) + _fullRange = ReadWriteAttribute(jsObject: object, name: Strings.fullRange) super.init(unsafelyWrapping: object) } @ReadWriteAttribute - public var max: UInt32 + public var primaries: VideoColorPrimaries @ReadWriteAttribute - public var min: UInt32 + public var transfer: VideoTransferCharacteristics + + @ReadWriteAttribute + public var matrix: VideoMatrixCoefficients + + @ReadWriteAttribute + public var fullRange: Bool } -public class URL: JSBridgedClass { - @inlinable public class var constructor: JSFunction { JSObject.global[Strings.URL].function! } +public class VideoDecoder: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.VideoDecoder].function! } public let jsObject: JSObject public required init(unsafelyWrapping jsObject: JSObject) { - _href = ReadWriteAttribute(jsObject: jsObject, name: Strings.href) - _origin = ReadonlyAttribute(jsObject: jsObject, name: Strings.origin) - _protocol = ReadWriteAttribute(jsObject: jsObject, name: Strings.protocol) - _username = ReadWriteAttribute(jsObject: jsObject, name: Strings.username) - _password = ReadWriteAttribute(jsObject: jsObject, name: Strings.password) - _host = ReadWriteAttribute(jsObject: jsObject, name: Strings.host) - _hostname = ReadWriteAttribute(jsObject: jsObject, name: Strings.hostname) - _port = ReadWriteAttribute(jsObject: jsObject, name: Strings.port) - _pathname = ReadWriteAttribute(jsObject: jsObject, name: Strings.pathname) - _search = ReadWriteAttribute(jsObject: jsObject, name: Strings.search) - _searchParams = ReadonlyAttribute(jsObject: jsObject, name: Strings.searchParams) - _hash = ReadWriteAttribute(jsObject: jsObject, name: Strings.hash) + _state = ReadonlyAttribute(jsObject: jsObject, name: Strings.state) + _decodeQueueSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.decodeQueueSize) self.jsObject = jsObject } - @inlinable public static func createObjectURL(obj: Blob_or_MediaSource) -> String { + @inlinable public convenience init(init: VideoDecoderInit) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [`init`.jsValue])) + } + + @ReadonlyAttribute + public var state: CodecState + + @ReadonlyAttribute + public var decodeQueueSize: UInt32 + + @inlinable public func configure(config: VideoDecoderConfig) { + let this = jsObject + _ = this[Strings.configure].function!(this: this, arguments: [config.jsValue]) + } + + @inlinable public func decode(chunk: EncodedVideoChunk) { + let this = jsObject + _ = this[Strings.decode].function!(this: this, arguments: [chunk.jsValue]) + } + + @inlinable public func flush() -> JSPromise { + let this = jsObject + return this[Strings.flush].function!(this: this, arguments: []).fromJSValue()! + } + + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public func flush() async throws { + let this = jsObject + let _promise: JSPromise = this[Strings.flush].function!(this: this, arguments: []).fromJSValue()! + _ = try await _promise.value + } + + @inlinable public func reset() { + let this = jsObject + _ = this[Strings.reset].function!(this: this, arguments: []) + } + + @inlinable public func close() { + let this = jsObject + _ = this[Strings.close].function!(this: this, arguments: []) + } + + @inlinable public static func isConfigSupported(config: VideoDecoderConfig) -> JSPromise { let this = constructor - return this[Strings.createObjectURL].function!(this: this, arguments: [obj.jsValue]).fromJSValue()! + return this[Strings.isConfigSupported].function!(this: this, arguments: [config.jsValue]).fromJSValue()! } - @inlinable public static func revokeObjectURL(url: String) { + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public static func isConfigSupported(config: VideoDecoderConfig) async throws -> VideoDecoderSupport { let this = constructor - _ = this[Strings.revokeObjectURL].function!(this: this, arguments: [url.jsValue]) + let _promise: JSPromise = this[Strings.isConfigSupported].function!(this: this, arguments: [config.jsValue]).fromJSValue()! + return try await _promise.value.fromJSValue()! } +} - @inlinable public convenience init(url: String, base: String? = nil) { - self.init(unsafelyWrapping: Self.constructor.new(arguments: [url.jsValue, base?.jsValue ?? .undefined])) +public class VideoDecoderConfig: BridgedDictionary { + public convenience init(codec: String, description: BufferSource, codedWidth: UInt32, codedHeight: UInt32, displayAspectWidth: UInt32, displayAspectHeight: UInt32, colorSpace: VideoColorSpaceInit, hardwareAcceleration: HardwareAcceleration, optimizeForLatency: Bool) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.codec] = codec.jsValue + object[Strings.description] = description.jsValue + object[Strings.codedWidth] = codedWidth.jsValue + object[Strings.codedHeight] = codedHeight.jsValue + object[Strings.displayAspectWidth] = displayAspectWidth.jsValue + object[Strings.displayAspectHeight] = displayAspectHeight.jsValue + object[Strings.colorSpace] = colorSpace.jsValue + object[Strings.hardwareAcceleration] = hardwareAcceleration.jsValue + object[Strings.optimizeForLatency] = optimizeForLatency.jsValue + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var href: String + public required init(unsafelyWrapping object: JSObject) { + _codec = ReadWriteAttribute(jsObject: object, name: Strings.codec) + _description = ReadWriteAttribute(jsObject: object, name: Strings.description) + _codedWidth = ReadWriteAttribute(jsObject: object, name: Strings.codedWidth) + _codedHeight = ReadWriteAttribute(jsObject: object, name: Strings.codedHeight) + _displayAspectWidth = ReadWriteAttribute(jsObject: object, name: Strings.displayAspectWidth) + _displayAspectHeight = ReadWriteAttribute(jsObject: object, name: Strings.displayAspectHeight) + _colorSpace = ReadWriteAttribute(jsObject: object, name: Strings.colorSpace) + _hardwareAcceleration = ReadWriteAttribute(jsObject: object, name: Strings.hardwareAcceleration) + _optimizeForLatency = ReadWriteAttribute(jsObject: object, name: Strings.optimizeForLatency) + super.init(unsafelyWrapping: object) + } - @ReadonlyAttribute - public var origin: String + @ReadWriteAttribute + public var codec: String @ReadWriteAttribute - public var `protocol`: String + public var description: BufferSource @ReadWriteAttribute - public var username: String + public var codedWidth: UInt32 @ReadWriteAttribute - public var password: String + public var codedHeight: UInt32 @ReadWriteAttribute - public var host: String + public var displayAspectWidth: UInt32 @ReadWriteAttribute - public var hostname: String + public var displayAspectHeight: UInt32 @ReadWriteAttribute - public var port: String + public var colorSpace: VideoColorSpaceInit @ReadWriteAttribute - public var pathname: String + public var hardwareAcceleration: HardwareAcceleration @ReadWriteAttribute - public var search: String + public var optimizeForLatency: Bool +} - @ReadonlyAttribute - public var searchParams: URLSearchParams +public class VideoDecoderInit: BridgedDictionary { + public convenience init(output: @escaping VideoFrameOutputCallback, error: @escaping WebCodecsErrorCallback) { + let object = JSObject.global[Strings.Object].function!.new() + ClosureAttribute1Void[Strings.output, in: object] = output + ClosureAttribute1Void[Strings.error, in: object] = error + self.init(unsafelyWrapping: object) + } - @ReadWriteAttribute - public var hash: String + public required init(unsafelyWrapping object: JSObject) { + _output = ClosureAttribute1Void(jsObject: object, name: Strings.output) + _error = ClosureAttribute1Void(jsObject: object, name: Strings.error) + super.init(unsafelyWrapping: object) + } - @inlinable public func toJSON() -> String { - let this = jsObject - return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()! + @ClosureAttribute1Void + public var output: VideoFrameOutputCallback + + @ClosureAttribute1Void + public var error: WebCodecsErrorCallback +} + +public class VideoDecoderSupport: BridgedDictionary { + public convenience init(supported: Bool, config: VideoDecoderConfig) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.supported] = supported.jsValue + object[Strings.config] = config.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _supported = ReadWriteAttribute(jsObject: object, name: Strings.supported) + _config = ReadWriteAttribute(jsObject: object, name: Strings.config) + super.init(unsafelyWrapping: object) } + + @ReadWriteAttribute + public var supported: Bool + + @ReadWriteAttribute + public var config: VideoDecoderConfig } -public class URLSearchParams: JSBridgedClass, Sequence { - @inlinable public class var constructor: JSFunction { JSObject.global[Strings.URLSearchParams].function! } +public class VideoEncoder: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.VideoEncoder].function! } public let jsObject: JSObject public required init(unsafelyWrapping jsObject: JSObject) { + _state = ReadonlyAttribute(jsObject: jsObject, name: Strings.state) + _encodeQueueSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.encodeQueueSize) self.jsObject = jsObject } - @inlinable public convenience init(init: String_or_record_String_to_String_or_seq_of_seq_of_String? = nil) { - self.init(unsafelyWrapping: Self.constructor.new(arguments: [`init`?.jsValue ?? .undefined])) + @inlinable public convenience init(init: VideoEncoderInit) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [`init`.jsValue])) } - @inlinable public func append(name: String, value: String) { - let this = jsObject - _ = this[Strings.append].function!(this: this, arguments: [name.jsValue, value.jsValue]) - } + @ReadonlyAttribute + public var state: CodecState - @inlinable public func delete(name: String) { + @ReadonlyAttribute + public var encodeQueueSize: UInt32 + + @inlinable public func configure(config: VideoEncoderConfig) { let this = jsObject - _ = this[Strings.delete].function!(this: this, arguments: [name.jsValue]) + _ = this[Strings.configure].function!(this: this, arguments: [config.jsValue]) } - @inlinable public func get(name: String) -> String? { + @inlinable public func encode(frame: VideoFrame, options: VideoEncoderEncodeOptions? = nil) { let this = jsObject - return this[Strings.get].function!(this: this, arguments: [name.jsValue]).fromJSValue()! + _ = this[Strings.encode].function!(this: this, arguments: [frame.jsValue, options?.jsValue ?? .undefined]) } - @inlinable public func getAll(name: String) -> [String] { + @inlinable public func flush() -> JSPromise { let this = jsObject - return this[Strings.getAll].function!(this: this, arguments: [name.jsValue]).fromJSValue()! + return this[Strings.flush].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func has(name: String) -> Bool { + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public func flush() async throws { let this = jsObject - return this[Strings.has].function!(this: this, arguments: [name.jsValue]).fromJSValue()! + let _promise: JSPromise = this[Strings.flush].function!(this: this, arguments: []).fromJSValue()! + _ = try await _promise.value } - @inlinable public func set(name: String, value: String) { + @inlinable public func reset() { let this = jsObject - _ = this[Strings.set].function!(this: this, arguments: [name.jsValue, value.jsValue]) + _ = this[Strings.reset].function!(this: this, arguments: []) } - @inlinable public func sort() { + @inlinable public func close() { let this = jsObject - _ = this[Strings.sort].function!(this: this, arguments: []) + _ = this[Strings.close].function!(this: this, arguments: []) } - public typealias Element = String - public func makeIterator() -> ValueIterableIterator { - ValueIterableIterator(sequence: self) + @inlinable public static func isConfigSupported(config: VideoEncoderConfig) -> JSPromise { + let this = constructor + return this[Strings.isConfigSupported].function!(this: this, arguments: [config.jsValue]).fromJSValue()! } - @inlinable public var description: String { - jsObject[Strings.toString]!().fromJSValue()! + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public static func isConfigSupported(config: VideoEncoderConfig) async throws -> VideoEncoderSupport { + let this = constructor + let _promise: JSPromise = this[Strings.isConfigSupported].function!(this: this, arguments: [config.jsValue]).fromJSValue()! + return try await _promise.value.fromJSValue()! } } -public class UnderlyingSink: BridgedDictionary { - public convenience init(start: @escaping UnderlyingSinkStartCallback, write: @escaping UnderlyingSinkWriteCallback, close: @escaping UnderlyingSinkCloseCallback, abort: @escaping UnderlyingSinkAbortCallback, type: JSValue) { +public class VideoEncoderConfig: BridgedDictionary { + public convenience init(codec: String, width: UInt32, height: UInt32, displayWidth: UInt32, displayHeight: UInt32, bitrate: UInt64, framerate: Double, hardwareAcceleration: HardwareAcceleration, alpha: AlphaOption, scalabilityMode: String, bitrateMode: BitrateMode, latencyMode: LatencyMode) { let object = JSObject.global[Strings.Object].function!.new() - ClosureAttribute1[Strings.start, in: object] = start - ClosureAttribute2[Strings.write, in: object] = write - ClosureAttribute0[Strings.close, in: object] = close - ClosureAttribute1[Strings.abort, in: object] = abort - object[Strings.type] = type.jsValue + object[Strings.codec] = codec.jsValue + object[Strings.width] = width.jsValue + object[Strings.height] = height.jsValue + object[Strings.displayWidth] = displayWidth.jsValue + object[Strings.displayHeight] = displayHeight.jsValue + object[Strings.bitrate] = bitrate.jsValue + object[Strings.framerate] = framerate.jsValue + object[Strings.hardwareAcceleration] = hardwareAcceleration.jsValue + object[Strings.alpha] = alpha.jsValue + object[Strings.scalabilityMode] = scalabilityMode.jsValue + object[Strings.bitrateMode] = bitrateMode.jsValue + object[Strings.latencyMode] = latencyMode.jsValue self.init(unsafelyWrapping: object) } public required init(unsafelyWrapping object: JSObject) { - _start = ClosureAttribute1(jsObject: object, name: Strings.start) - _write = ClosureAttribute2(jsObject: object, name: Strings.write) - _close = ClosureAttribute0(jsObject: object, name: Strings.close) - _abort = ClosureAttribute1(jsObject: object, name: Strings.abort) - _type = ReadWriteAttribute(jsObject: object, name: Strings.type) + _codec = ReadWriteAttribute(jsObject: object, name: Strings.codec) + _width = ReadWriteAttribute(jsObject: object, name: Strings.width) + _height = ReadWriteAttribute(jsObject: object, name: Strings.height) + _displayWidth = ReadWriteAttribute(jsObject: object, name: Strings.displayWidth) + _displayHeight = ReadWriteAttribute(jsObject: object, name: Strings.displayHeight) + _bitrate = ReadWriteAttribute(jsObject: object, name: Strings.bitrate) + _framerate = ReadWriteAttribute(jsObject: object, name: Strings.framerate) + _hardwareAcceleration = ReadWriteAttribute(jsObject: object, name: Strings.hardwareAcceleration) + _alpha = ReadWriteAttribute(jsObject: object, name: Strings.alpha) + _scalabilityMode = ReadWriteAttribute(jsObject: object, name: Strings.scalabilityMode) + _bitrateMode = ReadWriteAttribute(jsObject: object, name: Strings.bitrateMode) + _latencyMode = ReadWriteAttribute(jsObject: object, name: Strings.latencyMode) super.init(unsafelyWrapping: object) } - @ClosureAttribute1 - public var start: UnderlyingSinkStartCallback + @ReadWriteAttribute + public var codec: String - @ClosureAttribute2 - public var write: UnderlyingSinkWriteCallback + @ReadWriteAttribute + public var width: UInt32 - @ClosureAttribute0 - public var close: UnderlyingSinkCloseCallback + @ReadWriteAttribute + public var height: UInt32 - @ClosureAttribute1 - public var abort: UnderlyingSinkAbortCallback + @ReadWriteAttribute + public var displayWidth: UInt32 @ReadWriteAttribute - public var type: JSValue + public var displayHeight: UInt32 + + @ReadWriteAttribute + public var bitrate: UInt64 + + @ReadWriteAttribute + public var framerate: Double + + @ReadWriteAttribute + public var hardwareAcceleration: HardwareAcceleration + + @ReadWriteAttribute + public var alpha: AlphaOption + + @ReadWriteAttribute + public var scalabilityMode: String + + @ReadWriteAttribute + public var bitrateMode: BitrateMode + + @ReadWriteAttribute + public var latencyMode: LatencyMode } -public class UnderlyingSource: BridgedDictionary { - public convenience init(start: @escaping UnderlyingSourceStartCallback, pull: @escaping UnderlyingSourcePullCallback, cancel: @escaping UnderlyingSourceCancelCallback, type: ReadableStreamType, autoAllocateChunkSize: UInt64) { +public class VideoEncoderEncodeOptions: BridgedDictionary { + public convenience init(keyFrame: Bool) { let object = JSObject.global[Strings.Object].function!.new() - ClosureAttribute1[Strings.start, in: object] = start - ClosureAttribute1[Strings.pull, in: object] = pull - ClosureAttribute1[Strings.cancel, in: object] = cancel - object[Strings.type] = type.jsValue - object[Strings.autoAllocateChunkSize] = autoAllocateChunkSize.jsValue + object[Strings.keyFrame] = keyFrame.jsValue self.init(unsafelyWrapping: object) } public required init(unsafelyWrapping object: JSObject) { - _start = ClosureAttribute1(jsObject: object, name: Strings.start) - _pull = ClosureAttribute1(jsObject: object, name: Strings.pull) - _cancel = ClosureAttribute1(jsObject: object, name: Strings.cancel) - _type = ReadWriteAttribute(jsObject: object, name: Strings.type) - _autoAllocateChunkSize = ReadWriteAttribute(jsObject: object, name: Strings.autoAllocateChunkSize) + _keyFrame = ReadWriteAttribute(jsObject: object, name: Strings.keyFrame) super.init(unsafelyWrapping: object) } - @ClosureAttribute1 - public var start: UnderlyingSourceStartCallback + @ReadWriteAttribute + public var keyFrame: Bool +} - @ClosureAttribute1 - public var pull: UnderlyingSourcePullCallback +public class VideoEncoderInit: BridgedDictionary { + public convenience init(output: @escaping EncodedVideoChunkOutputCallback, error: @escaping WebCodecsErrorCallback) { + let object = JSObject.global[Strings.Object].function!.new() + ClosureAttribute2Void[Strings.output, in: object] = output + ClosureAttribute1Void[Strings.error, in: object] = error + self.init(unsafelyWrapping: object) + } - @ClosureAttribute1 - public var cancel: UnderlyingSourceCancelCallback + public required init(unsafelyWrapping object: JSObject) { + _output = ClosureAttribute2Void(jsObject: object, name: Strings.output) + _error = ClosureAttribute1Void(jsObject: object, name: Strings.error) + super.init(unsafelyWrapping: object) + } + + @ClosureAttribute2Void + public var output: EncodedVideoChunkOutputCallback + + @ClosureAttribute1Void + public var error: WebCodecsErrorCallback +} + +public class VideoEncoderSupport: BridgedDictionary { + public convenience init(supported: Bool, config: VideoEncoderConfig) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.supported] = supported.jsValue + object[Strings.config] = config.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _supported = ReadWriteAttribute(jsObject: object, name: Strings.supported) + _config = ReadWriteAttribute(jsObject: object, name: Strings.config) + super.init(unsafelyWrapping: object) + } @ReadWriteAttribute - public var type: ReadableStreamType + public var supported: Bool + + @ReadWriteAttribute + public var config: VideoEncoderConfig +} + +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)) + } - @ReadWriteAttribute - public var autoAllocateChunkSize: UInt64 + @inlinable public var jsValue: JSValue { rawValue.jsValue } } -public class ValidityState: JSBridgedClass { - @inlinable public class var constructor: JSFunction { JSObject.global[Strings.ValidityState].function! } +public class VideoFrame: JSBridgedClass { + @inlinable public class var constructor: JSFunction { JSObject.global[Strings.VideoFrame].function! } public let jsObject: JSObject public required init(unsafelyWrapping jsObject: JSObject) { - _valueMissing = ReadonlyAttribute(jsObject: jsObject, name: Strings.valueMissing) - _typeMismatch = ReadonlyAttribute(jsObject: jsObject, name: Strings.typeMismatch) - _patternMismatch = ReadonlyAttribute(jsObject: jsObject, name: Strings.patternMismatch) - _tooLong = ReadonlyAttribute(jsObject: jsObject, name: Strings.tooLong) - _tooShort = ReadonlyAttribute(jsObject: jsObject, name: Strings.tooShort) - _rangeUnderflow = ReadonlyAttribute(jsObject: jsObject, name: Strings.rangeUnderflow) - _rangeOverflow = ReadonlyAttribute(jsObject: jsObject, name: Strings.rangeOverflow) - _stepMismatch = ReadonlyAttribute(jsObject: jsObject, name: Strings.stepMismatch) - _badInput = ReadonlyAttribute(jsObject: jsObject, name: Strings.badInput) - _customError = ReadonlyAttribute(jsObject: jsObject, name: Strings.customError) - _valid = ReadonlyAttribute(jsObject: jsObject, name: Strings.valid) + _format = ReadonlyAttribute(jsObject: jsObject, name: Strings.format) + _codedWidth = ReadonlyAttribute(jsObject: jsObject, name: Strings.codedWidth) + _codedHeight = ReadonlyAttribute(jsObject: jsObject, name: Strings.codedHeight) + _codedRect = ReadonlyAttribute(jsObject: jsObject, name: Strings.codedRect) + _visibleRect = ReadonlyAttribute(jsObject: jsObject, name: Strings.visibleRect) + _displayWidth = ReadonlyAttribute(jsObject: jsObject, name: Strings.displayWidth) + _displayHeight = ReadonlyAttribute(jsObject: jsObject, name: Strings.displayHeight) + _duration = ReadonlyAttribute(jsObject: jsObject, name: Strings.duration) + _timestamp = ReadonlyAttribute(jsObject: jsObject, name: Strings.timestamp) + _colorSpace = ReadonlyAttribute(jsObject: jsObject, name: Strings.colorSpace) self.jsObject = jsObject } - @ReadonlyAttribute - public var valueMissing: Bool + @inlinable public convenience init(image: CanvasImageSource, init: VideoFrameInit? = nil) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [image.jsValue, `init`?.jsValue ?? .undefined])) + } + + @inlinable public convenience init(data: BufferSource, init: VideoFrameBufferInit) { + self.init(unsafelyWrapping: Self.constructor.new(arguments: [data.jsValue, `init`.jsValue])) + } @ReadonlyAttribute - public var typeMismatch: Bool + public var format: VideoPixelFormat? @ReadonlyAttribute - public var patternMismatch: Bool + public var codedWidth: UInt32 @ReadonlyAttribute - public var tooLong: Bool + public var codedHeight: UInt32 @ReadonlyAttribute - public var tooShort: Bool + public var codedRect: DOMRectReadOnly? @ReadonlyAttribute - public var rangeUnderflow: Bool + public var visibleRect: DOMRectReadOnly? @ReadonlyAttribute - public var rangeOverflow: Bool + public var displayWidth: UInt32 @ReadonlyAttribute - public var stepMismatch: Bool + public var displayHeight: UInt32 @ReadonlyAttribute - public var badInput: Bool + public var duration: UInt64? @ReadonlyAttribute - public var customError: Bool + public var timestamp: Int64? @ReadonlyAttribute - public var valid: Bool + public var colorSpace: VideoColorSpace + + @inlinable public func allocationSize(options: VideoFrameCopyToOptions? = nil) -> UInt32 { + let this = jsObject + return this[Strings.allocationSize].function!(this: this, arguments: [options?.jsValue ?? .undefined]).fromJSValue()! + } + + @inlinable public func copyTo(destination: BufferSource, options: VideoFrameCopyToOptions? = nil) -> JSPromise { + let this = jsObject + return this[Strings.copyTo].function!(this: this, arguments: [destination.jsValue, options?.jsValue ?? .undefined]).fromJSValue()! + } + + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) + @inlinable public func copyTo(destination: BufferSource, options: VideoFrameCopyToOptions? = nil) async throws -> [PlaneLayout] { + let this = jsObject + let _promise: JSPromise = this[Strings.copyTo].function!(this: this, arguments: [destination.jsValue, options?.jsValue ?? .undefined]).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + + @inlinable public func clone() -> Self { + let this = jsObject + return this[Strings.clone].function!(this: this, arguments: []).fromJSValue()! + } + + @inlinable public func close() { + let this = jsObject + _ = this[Strings.close].function!(this: this, arguments: []) + } } -public class ValidityStateFlags: BridgedDictionary { - public convenience init(valueMissing: Bool, typeMismatch: Bool, patternMismatch: Bool, tooLong: Bool, tooShort: Bool, rangeUnderflow: Bool, rangeOverflow: Bool, stepMismatch: Bool, badInput: Bool, customError: Bool) { +public class VideoFrameBufferInit: BridgedDictionary { + public convenience init(format: VideoPixelFormat, codedWidth: UInt32, codedHeight: UInt32, timestamp: Int64, duration: UInt64, layout: [PlaneLayout], visibleRect: DOMRectInit, displayWidth: UInt32, displayHeight: UInt32, colorSpace: VideoColorSpaceInit) { let object = JSObject.global[Strings.Object].function!.new() - object[Strings.valueMissing] = valueMissing.jsValue - object[Strings.typeMismatch] = typeMismatch.jsValue - object[Strings.patternMismatch] = patternMismatch.jsValue - object[Strings.tooLong] = tooLong.jsValue - object[Strings.tooShort] = tooShort.jsValue - object[Strings.rangeUnderflow] = rangeUnderflow.jsValue - object[Strings.rangeOverflow] = rangeOverflow.jsValue - object[Strings.stepMismatch] = stepMismatch.jsValue - object[Strings.badInput] = badInput.jsValue - object[Strings.customError] = customError.jsValue + object[Strings.format] = format.jsValue + object[Strings.codedWidth] = codedWidth.jsValue + object[Strings.codedHeight] = codedHeight.jsValue + object[Strings.timestamp] = timestamp.jsValue + object[Strings.duration] = duration.jsValue + object[Strings.layout] = layout.jsValue + object[Strings.visibleRect] = visibleRect.jsValue + object[Strings.displayWidth] = displayWidth.jsValue + object[Strings.displayHeight] = displayHeight.jsValue + object[Strings.colorSpace] = colorSpace.jsValue self.init(unsafelyWrapping: object) } public required init(unsafelyWrapping object: JSObject) { - _valueMissing = ReadWriteAttribute(jsObject: object, name: Strings.valueMissing) - _typeMismatch = ReadWriteAttribute(jsObject: object, name: Strings.typeMismatch) - _patternMismatch = ReadWriteAttribute(jsObject: object, name: Strings.patternMismatch) - _tooLong = ReadWriteAttribute(jsObject: object, name: Strings.tooLong) - _tooShort = ReadWriteAttribute(jsObject: object, name: Strings.tooShort) - _rangeUnderflow = ReadWriteAttribute(jsObject: object, name: Strings.rangeUnderflow) - _rangeOverflow = ReadWriteAttribute(jsObject: object, name: Strings.rangeOverflow) - _stepMismatch = ReadWriteAttribute(jsObject: object, name: Strings.stepMismatch) - _badInput = ReadWriteAttribute(jsObject: object, name: Strings.badInput) - _customError = ReadWriteAttribute(jsObject: object, name: Strings.customError) + _format = ReadWriteAttribute(jsObject: object, name: Strings.format) + _codedWidth = ReadWriteAttribute(jsObject: object, name: Strings.codedWidth) + _codedHeight = ReadWriteAttribute(jsObject: object, name: Strings.codedHeight) + _timestamp = ReadWriteAttribute(jsObject: object, name: Strings.timestamp) + _duration = ReadWriteAttribute(jsObject: object, name: Strings.duration) + _layout = ReadWriteAttribute(jsObject: object, name: Strings.layout) + _visibleRect = ReadWriteAttribute(jsObject: object, name: Strings.visibleRect) + _displayWidth = ReadWriteAttribute(jsObject: object, name: Strings.displayWidth) + _displayHeight = ReadWriteAttribute(jsObject: object, name: Strings.displayHeight) + _colorSpace = ReadWriteAttribute(jsObject: object, name: Strings.colorSpace) super.init(unsafelyWrapping: object) } @ReadWriteAttribute - public var valueMissing: Bool + public var format: VideoPixelFormat @ReadWriteAttribute - public var typeMismatch: Bool + public var codedWidth: UInt32 @ReadWriteAttribute - public var patternMismatch: Bool + public var codedHeight: UInt32 @ReadWriteAttribute - public var tooLong: Bool + public var timestamp: Int64 @ReadWriteAttribute - public var tooShort: Bool + public var duration: UInt64 @ReadWriteAttribute - public var rangeUnderflow: Bool + public var layout: [PlaneLayout] @ReadWriteAttribute - public var rangeOverflow: Bool + public var visibleRect: DOMRectInit @ReadWriteAttribute - public var stepMismatch: Bool + public var displayWidth: UInt32 @ReadWriteAttribute - public var badInput: Bool + public var displayHeight: UInt32 @ReadWriteAttribute - public var customError: Bool + public var colorSpace: VideoColorSpaceInit } -public enum VideoFacingModeEnum: JSString, JSValueCompatible { - case user = "user" - case environment = "environment" - case left = "left" - case right = "right" +public class VideoFrameCopyToOptions: BridgedDictionary { + public convenience init(rect: DOMRectInit, layout: [PlaneLayout]) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.rect] = rect.jsValue + object[Strings.layout] = layout.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _rect = ReadWriteAttribute(jsObject: object, name: Strings.rect) + _layout = ReadWriteAttribute(jsObject: object, name: Strings.layout) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var rect: DOMRectInit + + @ReadWriteAttribute + public var layout: [PlaneLayout] +} + +public class VideoFrameInit: BridgedDictionary { + public convenience init(duration: UInt64, timestamp: Int64, alpha: AlphaOption, visibleRect: DOMRectInit, displayWidth: UInt32, displayHeight: UInt32) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.duration] = duration.jsValue + object[Strings.timestamp] = timestamp.jsValue + object[Strings.alpha] = alpha.jsValue + object[Strings.visibleRect] = visibleRect.jsValue + object[Strings.displayWidth] = displayWidth.jsValue + object[Strings.displayHeight] = displayHeight.jsValue + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { + _duration = ReadWriteAttribute(jsObject: object, name: Strings.duration) + _timestamp = ReadWriteAttribute(jsObject: object, name: Strings.timestamp) + _alpha = ReadWriteAttribute(jsObject: object, name: Strings.alpha) + _visibleRect = ReadWriteAttribute(jsObject: object, name: Strings.visibleRect) + _displayWidth = ReadWriteAttribute(jsObject: object, name: Strings.displayWidth) + _displayHeight = ReadWriteAttribute(jsObject: object, name: Strings.displayHeight) + super.init(unsafelyWrapping: object) + } + + @ReadWriteAttribute + public var duration: UInt64 + + @ReadWriteAttribute + public var timestamp: Int64 + + @ReadWriteAttribute + public var alpha: AlphaOption + + @ReadWriteAttribute + public var visibleRect: DOMRectInit + + @ReadWriteAttribute + public var displayWidth: UInt32 + + @ReadWriteAttribute + public var displayHeight: UInt32 +} + +public enum VideoMatrixCoefficients: JSString, JSValueCompatible { + case rgb = "rgb" + case bt709 = "bt709" + case bt470bg = "bt470bg" + case smpte170m = "smpte170m" + + @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 VideoPixelFormat: JSString, JSValueCompatible { + case i420 = "I420" + case i420A = "I420A" + case i422 = "I422" + case i444 = "I444" + case nV12 = "NV12" + case rGBA = "RGBA" + case rGBX = "RGBX" + case bGRA = "BGRA" + case bGRX = "BGRX" @inlinable public static func construct(from jsValue: JSValue) -> Self? { if let string = jsValue.jsString { @@ -17432,6 +19097,25 @@ public class VideoTrackList: EventTarget { public var onremovetrack: EventHandler } +public enum VideoTransferCharacteristics: JSString, JSValueCompatible { + case bt709 = "bt709" + case smpte170m = "smpte170m" + case iec6196621 = "iec61966-2-1" + + @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 WaveShaperNode: AudioNode { @inlinable override public class var constructor: JSFunction { JSObject.global[Strings.WaveShaperNode].function! } @@ -19341,7 +21025,10 @@ public enum console { @usableFromInline static let AudioBuffer: JSString = "AudioBuffer" @usableFromInline static let AudioBufferSourceNode: JSString = "AudioBufferSourceNode" @usableFromInline static let AudioContext: JSString = "AudioContext" + @usableFromInline static let AudioData: JSString = "AudioData" + @usableFromInline static let AudioDecoder: JSString = "AudioDecoder" @usableFromInline static let AudioDestinationNode: JSString = "AudioDestinationNode" + @usableFromInline static let AudioEncoder: JSString = "AudioEncoder" @usableFromInline static let AudioListener: JSString = "AudioListener" @usableFromInline static let AudioNode: JSString = "AudioNode" @usableFromInline static let AudioParam: JSString = "AudioParam" @@ -19406,6 +21093,8 @@ public enum console { @usableFromInline static let DynamicsCompressorNode: JSString = "DynamicsCompressorNode" @usableFromInline static let Element: JSString = "Element" @usableFromInline static let ElementInternals: JSString = "ElementInternals" + @usableFromInline static let EncodedAudioChunk: JSString = "EncodedAudioChunk" + @usableFromInline static let EncodedVideoChunk: JSString = "EncodedVideoChunk" @usableFromInline static let ErrorEvent: JSString = "ErrorEvent" @usableFromInline static let Event: JSString = "Event" @usableFromInline static let EventSource: JSString = "EventSource" @@ -19500,6 +21189,9 @@ public enum console { @usableFromInline static let ImageBitmap: JSString = "ImageBitmap" @usableFromInline static let ImageBitmapRenderingContext: JSString = "ImageBitmapRenderingContext" @usableFromInline static let ImageData: JSString = "ImageData" + @usableFromInline static let ImageDecoder: JSString = "ImageDecoder" + @usableFromInline static let ImageTrack: JSString = "ImageTrack" + @usableFromInline static let ImageTrackList: JSString = "ImageTrackList" @usableFromInline static let InputDeviceInfo: JSString = "InputDeviceInfo" @usableFromInline static let InputEvent: JSString = "InputEvent" @usableFromInline static let IsSearchProviderInstalled: JSString = "IsSearchProviderInstalled" @@ -19591,6 +21283,10 @@ public enum console { @usableFromInline static let URL: JSString = "URL" @usableFromInline static let URLSearchParams: JSString = "URLSearchParams" @usableFromInline static let ValidityState: JSString = "ValidityState" + @usableFromInline static let VideoColorSpace: JSString = "VideoColorSpace" + @usableFromInline static let VideoDecoder: JSString = "VideoDecoder" + @usableFromInline static let VideoEncoder: JSString = "VideoEncoder" + @usableFromInline static let VideoFrame: JSString = "VideoFrame" @usableFromInline static let VideoTrack: JSString = "VideoTrack" @usableFromInline static let VideoTrackList: JSString = "VideoTrackList" @usableFromInline static let WaveShaperNode: JSString = "WaveShaperNode" @@ -19643,15 +21339,18 @@ public enum console { @usableFromInline static let align: JSString = "align" @usableFromInline static let alinkColor: JSString = "alinkColor" @usableFromInline static let all: JSString = "all" + @usableFromInline static let allocationSize: JSString = "allocationSize" @usableFromInline static let allow: JSString = "allow" @usableFromInline static let allowFullscreen: JSString = "allowFullscreen" @usableFromInline static let alpha: JSString = "alpha" + @usableFromInline static let alphaSideData: JSString = "alphaSideData" @usableFromInline static let alphabeticBaseline: JSString = "alphabeticBaseline" @usableFromInline static let alt: JSString = "alt" @usableFromInline static let altKey: JSString = "altKey" @usableFromInline static let ancestorOrigins: JSString = "ancestorOrigins" @usableFromInline static let anchors: JSString = "anchors" @usableFromInline static let animate: JSString = "animate" + @usableFromInline static let animated: JSString = "animated" @usableFromInline static let appCodeName: JSString = "appCodeName" @usableFromInline static let appName: JSString = "appName" @usableFromInline static let appVersion: JSString = "appVersion" @@ -19751,6 +21450,8 @@ public enum console { @usableFromInline static let bezierCurveTo: JSString = "bezierCurveTo" @usableFromInline static let bgColor: JSString = "bgColor" @usableFromInline static let binaryType: JSString = "binaryType" + @usableFromInline static let bitrate: JSString = "bitrate" + @usableFromInline static let bitrateMode: JSString = "bitrateMode" @usableFromInline static let bitsPerSecond: JSString = "bitsPerSecond" @usableFromInline static let blob: JSString = "blob" @usableFromInline static let block: JSString = "block" @@ -19771,6 +21472,7 @@ public enum console { @usableFromInline static let button: JSString = "button" @usableFromInline static let buttons: JSString = "buttons" @usableFromInline static let byobRequest: JSString = "byobRequest" + @usableFromInline static let byteLength: JSString = "byteLength" @usableFromInline static let c: JSString = "c" @usableFromInline static let cache: JSString = "cache" @usableFromInline static let cacheName: JSString = "cacheName" @@ -19837,6 +21539,10 @@ public enum console { @usableFromInline static let code: JSString = "code" @usableFromInline static let codeBase: JSString = "codeBase" @usableFromInline static let codeType: JSString = "codeType" + @usableFromInline static let codec: JSString = "codec" + @usableFromInline static let codedHeight: JSString = "codedHeight" + @usableFromInline static let codedRect: JSString = "codedRect" + @usableFromInline static let codedWidth: JSString = "codedWidth" @usableFromInline static let colSpan: JSString = "colSpan" @usableFromInline static let collapse: JSString = "collapse" @usableFromInline static let collapsed: JSString = "collapsed" @@ -19855,6 +21561,8 @@ public enum console { @usableFromInline static let comparePoint: JSString = "comparePoint" @usableFromInline static let compatMode: JSString = "compatMode" @usableFromInline static let complete: JSString = "complete" + @usableFromInline static let completeFramesOnly: JSString = "completeFramesOnly" + @usableFromInline static let completed: JSString = "completed" @usableFromInline static let composed: JSString = "composed" @usableFromInline static let composedPath: JSString = "composedPath" @usableFromInline static let composite: JSString = "composite" @@ -19862,6 +21570,8 @@ public enum console { @usableFromInline static let coneInnerAngle: JSString = "coneInnerAngle" @usableFromInline static let coneOuterAngle: JSString = "coneOuterAngle" @usableFromInline static let coneOuterGain: JSString = "coneOuterGain" + @usableFromInline static let config: JSString = "config" + @usableFromInline static let configure: JSString = "configure" @usableFromInline static let confirm: JSString = "confirm" @usableFromInline static let connect: JSString = "connect" @usableFromInline static let console: JSString = "console" @@ -19885,6 +21595,7 @@ public enum console { @usableFromInline static let cookieEnabled: JSString = "cookieEnabled" @usableFromInline static let coords: JSString = "coords" @usableFromInline static let copyFromChannel: JSString = "copyFromChannel" + @usableFromInline static let copyTo: JSString = "copyTo" @usableFromInline static let copyToChannel: JSString = "copyToChannel" @usableFromInline static let count: JSString = "count" @usableFromInline static let countReset: JSString = "countReset" @@ -19957,6 +21668,8 @@ public enum console { @usableFromInline static let debug: JSString = "debug" @usableFromInline static let declare: JSString = "declare" @usableFromInline static let decode: JSString = "decode" + @usableFromInline static let decodeQueueSize: JSString = "decodeQueueSize" + @usableFromInline static let decoderConfig: JSString = "decoderConfig" @usableFromInline static let decoding: JSString = "decoding" @usableFromInline static let `default`: JSString = "default" @usableFromInline static let defaultChecked: JSString = "defaultChecked" @@ -19985,7 +21698,9 @@ public enum console { @usableFromInline static let deltaZ: JSString = "deltaZ" @usableFromInline static let description: JSString = "description" @usableFromInline static let designMode: JSString = "designMode" + @usableFromInline static let desiredHeight: JSString = "desiredHeight" @usableFromInline static let desiredSize: JSString = "desiredSize" + @usableFromInline static let desiredWidth: JSString = "desiredWidth" @usableFromInline static let destination: JSString = "destination" @usableFromInline static let desynchronized: JSString = "desynchronized" @usableFromInline static let detach: JSString = "detach" @@ -20002,6 +21717,10 @@ public enum console { @usableFromInline static let disabled: JSString = "disabled" @usableFromInline static let disconnect: JSString = "disconnect" @usableFromInline static let dispatchEvent: JSString = "dispatchEvent" + @usableFromInline static let displayAspectHeight: JSString = "displayAspectHeight" + @usableFromInline static let displayAspectWidth: JSString = "displayAspectWidth" + @usableFromInline static let displayHeight: JSString = "displayHeight" + @usableFromInline static let displayWidth: JSString = "displayWidth" @usableFromInline static let distanceModel: JSString = "distanceModel" @usableFromInline static let doctype: JSString = "doctype" @usableFromInline static let document: JSString = "document" @@ -20031,6 +21750,8 @@ public enum console { @usableFromInline static let enable: JSString = "enable" @usableFromInline static let enabled: JSString = "enabled" @usableFromInline static let enabledPlugin: JSString = "enabledPlugin" + @usableFromInline static let encode: JSString = "encode" + @usableFromInline static let encodeQueueSize: JSString = "encodeQueueSize" @usableFromInline static let encoding: JSString = "encoding" @usableFromInline static let enctype: JSString = "enctype" @usableFromInline static let end: JSString = "end" @@ -20092,6 +21813,7 @@ public enum console { @usableFromInline static let formMethod: JSString = "formMethod" @usableFromInline static let formNoValidate: JSString = "formNoValidate" @usableFromInline static let formTarget: JSString = "formTarget" + @usableFromInline static let format: JSString = "format" @usableFromInline static let forms: JSString = "forms" @usableFromInline static let forward: JSString = "forward" @usableFromInline static let forwardX: JSString = "forwardX" @@ -20099,8 +21821,12 @@ public enum console { @usableFromInline static let forwardZ: JSString = "forwardZ" @usableFromInline static let frame: JSString = "frame" @usableFromInline static let frameBorder: JSString = "frameBorder" + @usableFromInline static let frameCount: JSString = "frameCount" @usableFromInline static let frameElement: JSString = "frameElement" + @usableFromInline static let frameIndex: JSString = "frameIndex" + @usableFromInline static let frameOffset: JSString = "frameOffset" @usableFromInline static let frameRate: JSString = "frameRate" + @usableFromInline static let framerate: JSString = "framerate" @usableFromInline static let frames: JSString = "frames" @usableFromInline static let frequency: JSString = "frequency" @usableFromInline static let frequencyBinCount: JSString = "frequencyBinCount" @@ -20111,6 +21837,7 @@ public enum console { @usableFromInline static let fromPoint: JSString = "fromPoint" @usableFromInline static let fromQuad: JSString = "fromQuad" @usableFromInline static let fromRect: JSString = "fromRect" + @usableFromInline static let fullRange: JSString = "fullRange" @usableFromInline static let gain: JSString = "gain" @usableFromInline static let get: JSString = "get" @usableFromInline static let getAll: JSString = "getAll" @@ -20179,6 +21906,7 @@ public enum console { @usableFromInline static let groupId: JSString = "groupId" @usableFromInline static let handled: JSString = "handled" @usableFromInline static let hangingBaseline: JSString = "hangingBaseline" + @usableFromInline static let hardwareAcceleration: JSString = "hardwareAcceleration" @usableFromInline static let hardwareConcurrency: JSString = "hardwareConcurrency" @usableFromInline static let has: JSString = "has" @usableFromInline static let hasAttribute: JSString = "hasAttribute" @@ -20210,6 +21938,7 @@ public enum console { @usableFromInline static let ignoreSearch: JSString = "ignoreSearch" @usableFromInline static let ignoreVary: JSString = "ignoreVary" @usableFromInline static let imag: JSString = "imag" + @usableFromInline static let image: JSString = "image" @usableFromInline static let imageOrientation: JSString = "imageOrientation" @usableFromInline static let imageSizes: JSString = "imageSizes" @usableFromInline static let imageSmoothingEnabled: JSString = "imageSmoothingEnabled" @@ -20258,6 +21987,7 @@ public enum console { @usableFromInline static let `is`: JSString = "is" @usableFromInline static let is2D: JSString = "is2D" @usableFromInline static let isComposing: JSString = "isComposing" + @usableFromInline static let isConfigSupported: JSString = "isConfigSupported" @usableFromInline static let isConnected: JSString = "isConnected" @usableFromInline static let isContentEditable: JSString = "isContentEditable" @usableFromInline static let isContextLost: JSString = "isContextLost" @@ -20285,6 +22015,7 @@ public enum console { @usableFromInline static let keepalive: JSString = "keepalive" @usableFromInline static let key: JSString = "key" @usableFromInline static let keyCode: JSString = "keyCode" + @usableFromInline static let keyFrame: JSString = "keyFrame" @usableFromInline static let keys: JSString = "keys" @usableFromInline static let kind: JSString = "kind" @usableFromInline static let knee: JSString = "knee" @@ -20299,6 +22030,8 @@ public enum console { @usableFromInline static let lastModified: JSString = "lastModified" @usableFromInline static let latency: JSString = "latency" @usableFromInline static let latencyHint: JSString = "latencyHint" + @usableFromInline static let latencyMode: JSString = "latencyMode" + @usableFromInline static let layout: JSString = "layout" @usableFromInline static let left: JSString = "left" @usableFromInline static let length: JSString = "length" @usableFromInline static let lengthComputable: JSString = "lengthComputable" @@ -20354,6 +22087,7 @@ public enum console { @usableFromInline static let matchAll: JSString = "matchAll" @usableFromInline static let matchMedia: JSString = "matchMedia" @usableFromInline static let matches: JSString = "matches" + @usableFromInline static let matrix: JSString = "matrix" @usableFromInline static let matrixTransform: JSString = "matrixTransform" @usableFromInline static let max: JSString = "max" @usableFromInline static let maxChannelCount: JSString = "maxChannelCount" @@ -20423,6 +22157,7 @@ public enum console { @usableFromInline static let normalize: JSString = "normalize" @usableFromInline static let now: JSString = "now" @usableFromInline static let numberOfChannels: JSString = "numberOfChannels" + @usableFromInline static let numberOfFrames: JSString = "numberOfFrames" @usableFromInline static let numberOfInputs: JSString = "numberOfInputs" @usableFromInline static let numberOfOutputs: JSString = "numberOfOutputs" @usableFromInline static let numberValue: JSString = "numberValue" @@ -20554,6 +22289,7 @@ public enum console { @usableFromInline static let onwheel: JSString = "onwheel" @usableFromInline static let open: JSString = "open" @usableFromInline static let opener: JSString = "opener" + @usableFromInline static let optimizeForLatency: JSString = "optimizeForLatency" @usableFromInline static let optimum: JSString = "optimum" @usableFromInline static let options: JSString = "options" @usableFromInline static let orientationX: JSString = "orientationX" @@ -20566,6 +22302,7 @@ public enum console { @usableFromInline static let outerHeight: JSString = "outerHeight" @usableFromInline static let outerText: JSString = "outerText" @usableFromInline static let outerWidth: JSString = "outerWidth" + @usableFromInline static let output: JSString = "output" @usableFromInline static let outputBuffer: JSString = "outputBuffer" @usableFromInline static let outputChannelCount: JSString = "outputChannelCount" @usableFromInline static let outputLatency: JSString = "outputLatency" @@ -20612,6 +22349,7 @@ public enum console { @usableFromInline static let pipeTo: JSString = "pipeTo" @usableFromInline static let pixelDepth: JSString = "pixelDepth" @usableFromInline static let placeholder: JSString = "placeholder" + @usableFromInline static let planeIndex: JSString = "planeIndex" @usableFromInline static let platform: JSString = "platform" @usableFromInline static let play: JSString = "play" @usableFromInline static let playState: JSString = "playState" @@ -20632,6 +22370,7 @@ public enum console { @usableFromInline static let postMessage: JSString = "postMessage" @usableFromInline static let poster: JSString = "poster" @usableFromInline static let preMultiplySelf: JSString = "preMultiplySelf" + @usableFromInline static let preferAnimation: JSString = "preferAnimation" @usableFromInline static let prefix: JSString = "prefix" @usableFromInline static let preload: JSString = "preload" @usableFromInline static let preloadResponse: JSString = "preloadResponse" @@ -20647,6 +22386,7 @@ public enum console { @usableFromInline static let previousElementSibling: JSString = "previousElementSibling" @usableFromInline static let previousNode: JSString = "previousNode" @usableFromInline static let previousSibling: JSString = "previousSibling" + @usableFromInline static let primaries: JSString = "primaries" @usableFromInline static let print: JSString = "print" @usableFromInline static let processorOptions: JSString = "processorOptions" @usableFromInline static let product: JSString = "product" @@ -20719,6 +22459,7 @@ public enum console { @usableFromInline static let removedNodes: JSString = "removedNodes" @usableFromInline static let renderedBuffer: JSString = "renderedBuffer" @usableFromInline static let `repeat`: JSString = "repeat" + @usableFromInline static let repetitionCount: JSString = "repetitionCount" @usableFromInline static let replace: JSString = "replace" @usableFromInline static let replaceChild: JSString = "replaceChild" @usableFromInline static let replaceChildren: JSString = "replaceChildren" @@ -20776,6 +22517,7 @@ public enum console { @usableFromInline static let sampleSize: JSString = "sampleSize" @usableFromInline static let sandbox: JSString = "sandbox" @usableFromInline static let save: JSString = "save" + @usableFromInline static let scalabilityMode: JSString = "scalabilityMode" @usableFromInline static let scale: JSString = "scale" @usableFromInline static let scale3d: JSString = "scale3d" @usableFromInline static let scale3dSelf: JSString = "scale3dSelf" @@ -20818,6 +22560,7 @@ public enum console { @usableFromInline static let selected: JSString = "selected" @usableFromInline static let selectedIndex: JSString = "selectedIndex" @usableFromInline static let selectedOptions: JSString = "selectedOptions" + @usableFromInline static let selectedTrack: JSString = "selectedTrack" @usableFromInline static let selectionDirection: JSString = "selectionDirection" @usableFromInline static let selectionEnd: JSString = "selectionEnd" @usableFromInline static let selectionStart: JSString = "selectionStart" @@ -20914,6 +22657,7 @@ public enum console { @usableFromInline static let stopPropagation: JSString = "stopPropagation" @usableFromInline static let storageArea: JSString = "storageArea" @usableFromInline static let stream: JSString = "stream" + @usableFromInline static let stride: JSString = "stride" @usableFromInline static let stringValue: JSString = "stringValue" @usableFromInline static let stroke: JSString = "stroke" @usableFromInline static let strokeRect: JSString = "strokeRect" @@ -20926,9 +22670,11 @@ public enum console { @usableFromInline static let subtree: JSString = "subtree" @usableFromInline static let suffixes: JSString = "suffixes" @usableFromInline static let summary: JSString = "summary" + @usableFromInline static let supported: JSString = "supported" @usableFromInline static let supports: JSString = "supports" @usableFromInline static let surroundContents: JSString = "surroundContents" @usableFromInline static let suspend: JSString = "suspend" + @usableFromInline static let svc: JSString = "svc" @usableFromInline static let systemId: JSString = "systemId" @usableFromInline static let tBodies: JSString = "tBodies" @usableFromInline static let tFoot: JSString = "tFoot" @@ -20941,6 +22687,7 @@ public enum console { @usableFromInline static let target: JSString = "target" @usableFromInline static let targetOrigin: JSString = "targetOrigin" @usableFromInline static let tee: JSString = "tee" + @usableFromInline static let temporalLayerId: JSString = "temporalLayerId" @usableFromInline static let terminate: JSString = "terminate" @usableFromInline static let text: JSString = "text" @usableFromInline static let textAlign: JSString = "textAlign" @@ -20959,6 +22706,7 @@ public enum console { @usableFromInline static let timecode: JSString = "timecode" @usableFromInline static let timeline: JSString = "timeline" @usableFromInline static let timeout: JSString = "timeout" + @usableFromInline static let timestamp: JSString = "timestamp" @usableFromInline static let title: JSString = "title" @usableFromInline static let toBox: JSString = "toBox" @usableFromInline static let toDataURL: JSString = "toDataURL" @@ -20975,6 +22723,7 @@ public enum console { @usableFromInline static let total: JSString = "total" @usableFromInline static let trace: JSString = "trace" @usableFromInline static let track: JSString = "track" + @usableFromInline static let tracks: JSString = "tracks" @usableFromInline static let transfer: JSString = "transfer" @usableFromInline static let transferControlToOffscreen: JSString = "transferControlToOffscreen" @usableFromInline static let transferFromImageBitmap: JSString = "transferFromImageBitmap" @@ -21025,6 +22774,7 @@ public enum console { @usableFromInline static let view: JSString = "view" @usableFromInline static let visibilityState: JSString = "visibilityState" @usableFromInline static let visible: JSString = "visible" + @usableFromInline static let visibleRect: JSString = "visibleRect" @usableFromInline static let vlinkColor: JSString = "vlinkColor" @usableFromInline static let volume: JSString = "volume" @usableFromInline static let vspace: JSString = "vspace" @@ -21557,6 +23307,104 @@ public enum CanvasGradient_or_CanvasPattern_or_String: JSValueCompatible, Any_Ca } } +public protocol Any_CanvasImageSource: ConvertibleToJSValue {} +extension HTMLCanvasElement: Any_CanvasImageSource {} +extension HTMLOrSVGImageElement: Any_CanvasImageSource {} +extension HTMLVideoElement: Any_CanvasImageSource {} +extension ImageBitmap: Any_CanvasImageSource {} +extension OffscreenCanvas: Any_CanvasImageSource {} +extension VideoFrame: Any_CanvasImageSource {} + +public enum CanvasImageSource: JSValueCompatible, Any_CanvasImageSource { + case htmlCanvasElement(HTMLCanvasElement) + case htmlOrSVGImageElement(HTMLOrSVGImageElement) + case htmlVideoElement(HTMLVideoElement) + case imageBitmap(ImageBitmap) + case offscreenCanvas(OffscreenCanvas) + case videoFrame(VideoFrame) + + var htmlCanvasElement: HTMLCanvasElement? { + switch self { + case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement + default: return nil + } + } + + var htmlOrSVGImageElement: HTMLOrSVGImageElement? { + switch self { + case let .htmlOrSVGImageElement(htmlOrSVGImageElement): return htmlOrSVGImageElement + default: return nil + } + } + + var htmlVideoElement: HTMLVideoElement? { + switch self { + case let .htmlVideoElement(htmlVideoElement): return htmlVideoElement + default: return nil + } + } + + var imageBitmap: ImageBitmap? { + switch self { + case let .imageBitmap(imageBitmap): return imageBitmap + default: return nil + } + } + + var offscreenCanvas: OffscreenCanvas? { + switch self { + case let .offscreenCanvas(offscreenCanvas): return offscreenCanvas + default: return nil + } + } + + var videoFrame: VideoFrame? { + switch self { + case let .videoFrame(videoFrame): return videoFrame + default: return nil + } + } + + public static func construct(from value: JSValue) -> Self? { + if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() { + return .htmlCanvasElement(htmlCanvasElement) + } + if let htmlOrSVGImageElement: HTMLOrSVGImageElement = value.fromJSValue() { + return .htmlOrSVGImageElement(htmlOrSVGImageElement) + } + if let htmlVideoElement: HTMLVideoElement = value.fromJSValue() { + return .htmlVideoElement(htmlVideoElement) + } + if let imageBitmap: ImageBitmap = value.fromJSValue() { + return .imageBitmap(imageBitmap) + } + if let offscreenCanvas: OffscreenCanvas = value.fromJSValue() { + return .offscreenCanvas(offscreenCanvas) + } + if let videoFrame: VideoFrame = value.fromJSValue() { + return .videoFrame(videoFrame) + } + return nil + } + + public var jsValue: JSValue { + switch self { + case let .htmlCanvasElement(htmlCanvasElement): + return htmlCanvasElement.jsValue + case let .htmlOrSVGImageElement(htmlOrSVGImageElement): + return htmlOrSVGImageElement.jsValue + case let .htmlVideoElement(htmlVideoElement): + return htmlVideoElement.jsValue + case let .imageBitmap(imageBitmap): + return imageBitmap.jsValue + case let .offscreenCanvas(offscreenCanvas): + return offscreenCanvas.jsValue + case let .videoFrame(videoFrame): + return videoFrame.jsValue + } + } +} + public protocol Any_CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto: ConvertibleToJSValue {} extension CompositeOperationOrAuto: Any_CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto {} extension Array: Any_CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto where Element == CompositeOperationOrAuto {} @@ -22649,6 +24497,48 @@ public enum ImageBitmapSource: JSValueCompatible, Any_ImageBitmapSource { } } +public protocol Any_ImageBufferSource: ConvertibleToJSValue {} +extension BufferSource: Any_ImageBufferSource {} +extension ReadableStream: Any_ImageBufferSource {} + +public enum ImageBufferSource: JSValueCompatible, Any_ImageBufferSource { + case bufferSource(BufferSource) + case readableStream(ReadableStream) + + var bufferSource: BufferSource? { + switch self { + case let .bufferSource(bufferSource): return bufferSource + default: return nil + } + } + + var readableStream: ReadableStream? { + switch self { + case let .readableStream(readableStream): return readableStream + default: return nil + } + } + + public static func construct(from value: JSValue) -> Self? { + if let bufferSource: BufferSource = value.fromJSValue() { + return .bufferSource(bufferSource) + } + if let readableStream: ReadableStream = value.fromJSValue() { + return .readableStream(readableStream) + } + return nil + } + + public var jsValue: JSValue { + switch self { + case let .bufferSource(bufferSource): + return bufferSource.jsValue + case let .readableStream(readableStream): + return readableStream.jsValue + } + } +} + public protocol Any_MessageEventSource: ConvertibleToJSValue {} extension MessagePort: Any_MessageEventSource {} extension ServiceWorker: Any_MessageEventSource {} diff --git a/Sources/WebIDLToSwift/IDLBuilder.swift b/Sources/WebIDLToSwift/IDLBuilder.swift index 925e3c1d..d56c79ee 100644 --- a/Sources/WebIDLToSwift/IDLBuilder.swift +++ b/Sources/WebIDLToSwift/IDLBuilder.swift @@ -18,7 +18,7 @@ enum IDLBuilder { "CSSColorValue_or_CSSStyleValue", // need types from specs not yet included "ShadowAnimation", "MediaProvider", "Blob_or_MediaSource", - "OffscreenRenderingContext", "RenderingContext", "CanvasImageSource", + "OffscreenRenderingContext", "RenderingContext", "HTMLOrSVGImageElement", "HTMLOrSVGScriptElement", "BodyInit", // implemented manually // ArrayBufferView @@ -38,7 +38,7 @@ enum IDLBuilder { let declarations = idl.flatMap(\.array) let merged = DeclarationMerger.merge(declarations: declarations) var contents: [SwiftSource] = [] - for node in merged.declarations.sorted(by: { $0.name < $1.name }) { + for node in merged.declarations.sorted(by: { $0.name < $1.name }) { if ignoredNames.contains(node.name) { continue } diff --git a/parse-idl/parse-all.js b/parse-idl/parse-all.js index 3e375d11..c64ed0f0 100644 --- a/parse-idl/parse-all.js +++ b/parse-idl/parse-all.js @@ -29,6 +29,7 @@ console.log( "webaudio", "mediacapture-streams", "mediastream-recording", + "webcodecs", ].map((key) => parsedFiles[key]), null, 2