From 26968193a659f3385209fce48b3fcc49e0df63f0 Mon Sep 17 00:00:00 2001 From: Kagami Sascha Rosylight Date: Wed, 2 Mar 2022 11:30:52 +0100 Subject: [PATCH] Update to bcd@4.1.7 --- baselines/dom.generated.d.ts | 201 +++++++++++++++++++++++++ baselines/serviceworker.generated.d.ts | 22 +++ baselines/sharedworker.generated.d.ts | 21 +++ baselines/webworker.generated.d.ts | 85 +++++++++++ package-lock.json | 14 +- src/build/helpers.ts | 3 + src/build/widlprocess.ts | 3 + 7 files changed, 342 insertions(+), 7 deletions(-) diff --git a/baselines/dom.generated.d.ts b/baselines/dom.generated.d.ts index f32fedc45..1cdf0b512 100644 --- a/baselines/dom.generated.d.ts +++ b/baselines/dom.generated.d.ts @@ -931,6 +931,11 @@ interface MutationObserverInit { subtree?: boolean; } +interface NavigationPreloadState { + enabled?: boolean; + headerValue?: string; +} + interface NotificationAction { action: string; icon?: string; @@ -1243,6 +1248,35 @@ interface RTCDtlsFingerprint { value?: string; } +interface RTCEncodedAudioFrameMetadata { + contributingSources?: number[]; + synchronizationSource?: number; +} + +interface RTCEncodedVideoFrameMetadata { + contributingSources?: number[]; + dependencies?: number[]; + frameId?: number; + height?: number; + spatialIndex?: number; + synchronizationSource?: number; + temporalIndex?: number; + width?: number; +} + +interface RTCErrorEventInit extends EventInit { + error: RTCError; +} + +interface RTCErrorInit { + errorDetail: RTCErrorDetailType; + httpRequestStatusCode?: number; + receivedAlert?: number; + sctpCauseCode?: number; + sdpLineNumber?: number; + sentAlert?: number; +} + interface RTCIceCandidateInit { candidate?: string; sdpMLineIndex?: number | null; @@ -1748,6 +1782,13 @@ interface UnderlyingSource { type?: undefined; } +interface VideoColorSpaceInit { + fullRange?: boolean; + matrix?: VideoMatrixCoefficients; + primaries?: VideoColorPrimaries; + transfer?: VideoTransferCharacteristics; +} + interface VideoConfiguration { bitrate: number; colorGamut?: ColorGamut; @@ -1760,6 +1801,19 @@ interface VideoConfiguration { width: number; } +interface VideoFrameMetadata { + captureTime?: DOMHighResTimeStamp; + expectedDisplayTime: DOMHighResTimeStamp; + height: number; + mediaTime: number; + presentationTime: DOMHighResTimeStamp; + presentedFrames: number; + processingDuration?: number; + receiveTime?: DOMHighResTimeStamp; + rtpTimestamp?: number; + width: number; +} + interface WaveShaperOptions extends AudioNodeOptions { curve?: number[] | Float32Array; oversample?: OverSampleType; @@ -2749,6 +2803,7 @@ interface CSSStyleDeclaration { clipPath: string; clipRule: string; color: string; + colorAdjust: string; colorInterpolation: string; colorInterpolationFilters: string; colorScheme: string; @@ -2874,6 +2929,14 @@ interface CSSStyleDeclaration { markerMid: string; markerStart: string; mask: string; + maskClip: string; + maskComposite: string; + maskImage: string; + maskMode: string; + maskOrigin: string; + maskPosition: string; + maskRepeat: string; + maskSize: string; maskType: string; maxBlockSize: string; maxHeight: string; @@ -4441,6 +4504,7 @@ interface Document extends Node, DocumentAndElementEventHandlers, DocumentOrShad createEvent(eventInterface: "PromiseRejectionEvent"): PromiseRejectionEvent; createEvent(eventInterface: "RTCDTMFToneChangeEvent"): RTCDTMFToneChangeEvent; createEvent(eventInterface: "RTCDataChannelEvent"): RTCDataChannelEvent; + createEvent(eventInterface: "RTCErrorEvent"): RTCErrorEvent; createEvent(eventInterface: "RTCPeerConnectionIceErrorEvent"): RTCPeerConnectionIceErrorEvent; createEvent(eventInterface: "RTCPeerConnectionIceEvent"): RTCPeerConnectionIceEvent; createEvent(eventInterface: "RTCTrackEvent"): RTCTrackEvent; @@ -4872,8 +4936,20 @@ interface ElementContentEditable { } interface ElementInternals extends ARIAMixin { + /** Returns the form owner of internals's target element. */ + readonly form: HTMLFormElement | null; + /** Returns a NodeList of all the label elements that internals's target element is associated with. */ + readonly labels: NodeList; /** Returns the ShadowRoot for internals's target element, if the target element is a shadow host, or null otherwise. */ readonly shadowRoot: ShadowRoot | null; + /** Returns true if internals's target element will be validated when the form is submitted; false otherwise. */ + readonly willValidate: boolean; + /** + * Sets both the state and submission value of internals's target element to value. + * + * If value is null, the element won't participate in form submission. + */ + setFormValue(value: File | string | FormData | null, state?: File | string | FormData | null): void; } declare var ElementInternals: { @@ -8256,8 +8332,10 @@ interface HTMLVideoElement extends HTMLMediaElement { readonly videoWidth: number; /** Gets or sets the width of the video element. */ width: number; + cancelVideoFrameCallback(handle: number): void; getVideoPlaybackQuality(): VideoPlaybackQuality; requestPictureInPicture(): Promise; + requestVideoFrameCallback(callback: VideoFrameRequestCallback): number; addEventListener(type: K, listener: (this: HTMLVideoElement, ev: HTMLVideoElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLVideoElement, ev: HTMLVideoElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; @@ -8764,6 +8842,7 @@ declare var ImageBitmapRenderingContext: { /** The underlying pixel data of an area of a element. It is created using the ImageData() constructor or creator methods on the CanvasRenderingContext2D object associated with a canvas: createImageData() and getImageData(). It can also be used to set a part of the canvas by using putImageData(). */ interface ImageData { + readonly colorSpace: PredefinedColorSpace; /** Returns the one-dimensional array containing the data in RGBA order, as integers in the range 0 to 255. */ readonly data: Uint8ClampedArray; /** Returns the actual dimensions of the data in the ImageData object, in pixels. */ @@ -9670,6 +9749,19 @@ declare var NamedNodeMap: { new(): NamedNodeMap; }; +/** Available only in secure contexts. */ +interface NavigationPreloadManager { + disable(): Promise; + enable(): Promise; + getState(): Promise; + setHeaderValue(value: string): Promise; +} + +declare var NavigationPreloadManager: { + prototype: NavigationPreloadManager; + new(): NavigationPreloadManager; +}; + /** The state and the identity of the user agent. It allows scripts to query it and to register themselves to carry on some activities. */ interface Navigator extends NavigatorAutomationInformation, NavigatorConcurrentHardware, NavigatorContentUtils, NavigatorCookies, NavigatorID, NavigatorLanguage, NavigatorNetworkInformation, NavigatorOnLine, NavigatorPlugins, NavigatorStorage { /** Available only in secure contexts. */ @@ -10796,6 +10888,7 @@ declare var RTCDTMFToneChangeEvent: { interface RTCDataChannelEventMap { "bufferedamountlow": Event; "close": Event; + "closing": Event; "error": Event; "message": MessageEvent; "open": Event; @@ -10812,6 +10905,7 @@ interface RTCDataChannel extends EventTarget { readonly negotiated: boolean; onbufferedamountlow: ((this: RTCDataChannel, ev: Event) => any) | null; onclose: ((this: RTCDataChannel, ev: Event) => any) | null; + onclosing: ((this: RTCDataChannel, ev: Event) => any) | null; onerror: ((this: RTCDataChannel, ev: Event) => any) | null; onmessage: ((this: RTCDataChannel, ev: MessageEvent) => any) | null; onopen: ((this: RTCDataChannel, ev: Event) => any) | null; @@ -10844,12 +10938,16 @@ declare var RTCDataChannelEvent: { }; interface RTCDtlsTransportEventMap { + "error": Event; "statechange": Event; } interface RTCDtlsTransport extends EventTarget { + readonly iceTransport: RTCIceTransport; + onerror: ((this: RTCDtlsTransport, ev: Event) => any) | null; onstatechange: ((this: RTCDtlsTransport, ev: Event) => any) | null; readonly state: RTCDtlsTransportState; + getRemoteCertificates(): ArrayBuffer[]; addEventListener(type: K, listener: (this: RTCDtlsTransport, ev: RTCDtlsTransportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: RTCDtlsTransport, ev: RTCDtlsTransportEventMap[K]) => any, options?: boolean | EventListenerOptions): void; @@ -10861,6 +10959,51 @@ declare var RTCDtlsTransport: { new(): RTCDtlsTransport; }; +interface RTCEncodedAudioFrame { + data: ArrayBuffer; + readonly timestamp: number; + getMetadata(): RTCEncodedAudioFrameMetadata; +} + +declare var RTCEncodedAudioFrame: { + prototype: RTCEncodedAudioFrame; + new(): RTCEncodedAudioFrame; +}; + +interface RTCEncodedVideoFrame { + data: ArrayBuffer; + readonly timestamp: number; + readonly type: RTCEncodedVideoFrameType; + getMetadata(): RTCEncodedVideoFrameMetadata; +} + +declare var RTCEncodedVideoFrame: { + prototype: RTCEncodedVideoFrame; + new(): RTCEncodedVideoFrame; +}; + +interface RTCError extends DOMException { + readonly errorDetail: RTCErrorDetailType; + readonly receivedAlert: number | null; + readonly sctpCauseCode: number | null; + readonly sdpLineNumber: number | null; + readonly sentAlert: number | null; +} + +declare var RTCError: { + prototype: RTCError; + new(init: RTCErrorInit, message?: string): RTCError; +}; + +interface RTCErrorEvent extends Event { + readonly error: RTCError; +} + +declare var RTCErrorEvent: { + prototype: RTCErrorEvent; + new(type: string, eventInitDict: RTCErrorEventInit): RTCErrorEvent; +}; + /** The RTCIceCandidate interface—part of the WebRTC API—represents a candidate Internet Connectivity Establishment (ICE) configuration which may be used to establish an RTCPeerConnection. */ interface RTCIceCandidate { readonly address: string | null; @@ -10885,10 +11028,21 @@ declare var RTCIceCandidate: { new(candidateInitDict?: RTCIceCandidateInit): RTCIceCandidate; }; +interface RTCIceTransportEventMap { + "gatheringstatechange": Event; + "statechange": Event; +} + /** Provides access to information about the ICE transport layer over which the data is being sent and received. */ interface RTCIceTransport extends EventTarget { readonly gatheringState: RTCIceGathererState; + ongatheringstatechange: ((this: RTCIceTransport, ev: Event) => any) | null; + onstatechange: ((this: RTCIceTransport, ev: Event) => any) | null; readonly state: RTCIceTransportState; + addEventListener(type: K, listener: (this: RTCIceTransport, ev: RTCIceTransportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: RTCIceTransport, ev: RTCIceTransportEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } declare var RTCIceTransport: { @@ -10929,6 +11083,7 @@ interface RTCPeerConnection extends EventTarget { readonly pendingLocalDescription: RTCSessionDescription | null; readonly pendingRemoteDescription: RTCSessionDescription | null; readonly remoteDescription: RTCSessionDescription | null; + readonly sctp: RTCSctpTransport | null; readonly signalingState: RTCSignalingState; addIceCandidate(candidate?: RTCIceCandidateInit): Promise; /** @deprecated */ @@ -11041,6 +11196,27 @@ declare var RTCRtpTransceiver: { new(): RTCRtpTransceiver; }; +interface RTCSctpTransportEventMap { + "statechange": Event; +} + +interface RTCSctpTransport extends EventTarget { + readonly maxChannels: number | null; + readonly maxMessageSize: number; + onstatechange: ((this: RTCSctpTransport, ev: Event) => any) | null; + readonly state: RTCSctpTransportState; + readonly transport: RTCDtlsTransport; + addEventListener(type: K, listener: (this: RTCSctpTransport, ev: RTCSctpTransportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: RTCSctpTransport, ev: RTCSctpTransportEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; +} + +declare var RTCSctpTransport: { + prototype: RTCSctpTransport; + new(): RTCSctpTransport; +}; + /** One end of a connection—or potential connection—and how it's configured. Each RTCSessionDescription consists of a description type indicating which part of the offer/answer negotiation process it describes and of the SDP descriptor of the session. */ interface RTCSessionDescription { readonly sdp: string; @@ -14102,6 +14278,19 @@ declare var ValidityState: { new(): ValidityState; }; +interface VideoColorSpace { + readonly fullRange: boolean | null; + readonly matrix: VideoMatrixCoefficients | null; + readonly primaries: VideoColorPrimaries | null; + readonly transfer: VideoTransferCharacteristics | null; + toJSON(): VideoColorSpaceInit; +} + +declare var VideoColorSpace: { + prototype: VideoColorSpace; + new(init?: VideoColorSpaceInit): VideoColorSpace; +}; + /** Returned by the HTMLVideoElement.getVideoPlaybackQuality() method and contains metrics that can be used to determine the playback quality of a video. */ interface VideoPlaybackQuality { /** @deprecated */ @@ -16458,6 +16647,7 @@ interface WindowOrWorkerGlobalScope { reportError(e: any): void; setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number; setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number; + structuredClone(value: any, options?: StructuredSerializeOptions): any; } interface WindowSessionStorage { @@ -17102,6 +17292,10 @@ interface UnderlyingSourceStartCallback { (controller: ReadableStreamController): any; } +interface VideoFrameRequestCallback { + (now: DOMHighResTimeStamp, metadata: VideoFrameMetadata): void; +} + interface VoidFunction { (): void; } @@ -17739,6 +17933,7 @@ declare function queueMicrotask(callback: VoidFunction): void; declare function reportError(e: any): void; declare function setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number; declare function setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number; +declare function structuredClone(value: any, options?: StructuredSerializeOptions): any; declare var sessionStorage: Storage; declare function addEventListener(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; declare function addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; @@ -17902,6 +18097,8 @@ type RTCBundlePolicy = "balanced" | "max-bundle" | "max-compat"; type RTCDataChannelState = "closed" | "closing" | "connecting" | "open"; type RTCDegradationPreference = "balanced" | "maintain-framerate" | "maintain-resolution"; type RTCDtlsTransportState = "closed" | "connected" | "connecting" | "failed" | "new"; +type RTCEncodedVideoFrameType = "delta" | "empty" | "key"; +type RTCErrorDetailType = "data-channel-failure" | "dtls-failure" | "fingerprint-failure" | "hardware-encoder-error" | "hardware-encoder-not-available" | "sctp-failure" | "sdp-syntax-error"; type RTCIceCandidateType = "host" | "prflx" | "relay" | "srflx"; type RTCIceComponent = "rtcp" | "rtp"; type RTCIceConnectionState = "checking" | "closed" | "completed" | "connected" | "disconnected" | "failed" | "new"; @@ -17916,6 +18113,7 @@ type RTCPeerConnectionState = "closed" | "connected" | "connecting" | "disconnec type RTCPriorityType = "high" | "low" | "medium" | "very-low"; type RTCRtcpMuxPolicy = "require"; type RTCRtpTransceiverDirection = "inactive" | "recvonly" | "sendonly" | "sendrecv" | "stopped"; +type RTCSctpTransportState = "closed" | "connected" | "connecting"; type RTCSdpType = "answer" | "offer" | "pranswer" | "rollback"; type RTCSignalingState = "closed" | "have-local-offer" | "have-local-pranswer" | "have-remote-offer" | "have-remote-pranswer" | "stable"; type RTCStatsIceCandidatePairState = "failed" | "frozen" | "in-progress" | "inprogress" | "succeeded" | "waiting"; @@ -17949,7 +18147,10 @@ type TextTrackMode = "disabled" | "hidden" | "showing"; type TouchType = "direct" | "stylus"; type TransferFunction = "hlg" | "pq" | "srgb"; type UserVerificationRequirement = "discouraged" | "preferred" | "required"; +type VideoColorPrimaries = "bt470bg" | "bt709" | "smpte170m"; type VideoFacingModeEnum = "environment" | "left" | "right" | "user"; +type VideoMatrixCoefficients = "bt470bg" | "bt709" | "rgb" | "smpte170m"; +type VideoTransferCharacteristics = "bt709" | "iec61966-2-1" | "smpte170m"; type WebGLPowerPreference = "default" | "high-performance" | "low-power"; type WorkerType = "classic" | "module"; type XMLHttpRequestResponseType = "" | "arraybuffer" | "blob" | "document" | "json" | "text"; diff --git a/baselines/serviceworker.generated.d.ts b/baselines/serviceworker.generated.d.ts index a3258b376..4494edd4d 100644 --- a/baselines/serviceworker.generated.d.ts +++ b/baselines/serviceworker.generated.d.ts @@ -359,6 +359,11 @@ interface MultiCacheQueryOptions extends CacheQueryOptions { cacheName?: string; } +interface NavigationPreloadState { + enabled?: boolean; + headerValue?: string; +} + interface NotificationAction { action: string; icon?: string; @@ -1404,6 +1409,7 @@ declare var ExtendableMessageEvent: { interface FetchEvent extends ExtendableEvent { readonly clientId: string; readonly handled: Promise; + readonly preloadResponse: Promise; readonly request: Request; readonly resultingClientId: string; respondWith(r: Response | PromiseLike): void; @@ -2043,6 +2049,7 @@ declare var ImageBitmapRenderingContext: { /** The underlying pixel data of an area of a element. It is created using the ImageData() constructor or creator methods on the CanvasRenderingContext2D object associated with a canvas: createImageData() and getImageData(). It can also be used to set a part of the canvas by using putImageData(). */ interface ImageData { + readonly colorSpace: PredefinedColorSpace; /** Returns the one-dimensional array containing the data in RGBA order, as integers in the range 0 to 255. */ readonly data: Uint8ClampedArray; /** Returns the actual dimensions of the data in the ImageData object, in pixels. */ @@ -2159,6 +2166,19 @@ declare var MessagePort: { new(): MessagePort; }; +/** Available only in secure contexts. */ +interface NavigationPreloadManager { + disable(): Promise; + enable(): Promise; + getState(): Promise; + setHeaderValue(value: string): Promise; +} + +declare var NavigationPreloadManager: { + prototype: NavigationPreloadManager; + new(): NavigationPreloadManager; +}; + interface NavigatorConcurrentHardware { readonly hardwareConcurrency: number; } @@ -5113,6 +5133,7 @@ interface WindowOrWorkerGlobalScope { reportError(e: any): void; setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number; setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number; + structuredClone(value: any, options?: StructuredSerializeOptions): any; } interface WorkerGlobalScopeEventMap { @@ -5482,6 +5503,7 @@ declare function queueMicrotask(callback: VoidFunction): void; declare function reportError(e: any): void; declare function setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number; declare function setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number; +declare function structuredClone(value: any, options?: StructuredSerializeOptions): any; declare function addEventListener(type: K, listener: (this: ServiceWorkerGlobalScope, ev: ServiceWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; declare function addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; declare function removeEventListener(type: K, listener: (this: ServiceWorkerGlobalScope, ev: ServiceWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void; diff --git a/baselines/sharedworker.generated.d.ts b/baselines/sharedworker.generated.d.ts index 06a713071..333692886 100644 --- a/baselines/sharedworker.generated.d.ts +++ b/baselines/sharedworker.generated.d.ts @@ -334,6 +334,11 @@ interface MultiCacheQueryOptions extends CacheQueryOptions { cacheName?: string; } +interface NavigationPreloadState { + enabled?: boolean; + headerValue?: string; +} + interface NotificationAction { action: string; icon?: string; @@ -1963,6 +1968,7 @@ declare var ImageBitmapRenderingContext: { /** The underlying pixel data of an area of a element. It is created using the ImageData() constructor or creator methods on the CanvasRenderingContext2D object associated with a canvas: createImageData() and getImageData(). It can also be used to set a part of the canvas by using putImageData(). */ interface ImageData { + readonly colorSpace: PredefinedColorSpace; /** Returns the one-dimensional array containing the data in RGBA order, as integers in the range 0 to 255. */ readonly data: Uint8ClampedArray; /** Returns the actual dimensions of the data in the ImageData object, in pixels. */ @@ -2079,6 +2085,19 @@ declare var MessagePort: { new(): MessagePort; }; +/** Available only in secure contexts. */ +interface NavigationPreloadManager { + disable(): Promise; + enable(): Promise; + getState(): Promise; + setHeaderValue(value: string): Promise; +} + +declare var NavigationPreloadManager: { + prototype: NavigationPreloadManager; + new(): NavigationPreloadManager; +}; + interface NavigatorConcurrentHardware { readonly hardwareConcurrency: number; } @@ -4968,6 +4987,7 @@ interface WindowOrWorkerGlobalScope { reportError(e: any): void; setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number; setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number; + structuredClone(value: any, options?: StructuredSerializeOptions): any; } interface WorkerEventMap extends AbstractWorkerEventMap { @@ -5499,6 +5519,7 @@ declare function queueMicrotask(callback: VoidFunction): void; declare function reportError(e: any): void; declare function setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number; declare function setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number; +declare function structuredClone(value: any, options?: StructuredSerializeOptions): any; declare function addEventListener(type: K, listener: (this: SharedWorkerGlobalScope, ev: SharedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; declare function addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; declare function removeEventListener(type: K, listener: (this: SharedWorkerGlobalScope, ev: SharedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void; diff --git a/baselines/webworker.generated.d.ts b/baselines/webworker.generated.d.ts index c885f3bbb..1122dae98 100644 --- a/baselines/webworker.generated.d.ts +++ b/baselines/webworker.generated.d.ts @@ -359,6 +359,11 @@ interface MultiCacheQueryOptions extends CacheQueryOptions { cacheName?: string; } +interface NavigationPreloadState { + enabled?: boolean; + headerValue?: string; +} + interface NotificationAction { action: string; icon?: string; @@ -455,6 +460,22 @@ interface QueuingStrategyInit { highWaterMark: number; } +interface RTCEncodedAudioFrameMetadata { + contributingSources?: number[]; + synchronizationSource?: number; +} + +interface RTCEncodedVideoFrameMetadata { + contributingSources?: number[]; + dependencies?: number[]; + frameId?: number; + height?: number; + spatialIndex?: number; + synchronizationSource?: number; + temporalIndex?: number; + width?: number; +} + interface ReadableStreamDefaultReadDoneResult { done: true; value?: undefined; @@ -628,6 +649,13 @@ interface UnderlyingSource { type?: undefined; } +interface VideoColorSpaceInit { + fullRange?: boolean; + matrix?: VideoMatrixCoefficients; + primaries?: VideoColorPrimaries; + transfer?: VideoTransferCharacteristics; +} + interface VideoConfiguration { bitrate: number; colorGamut?: ColorGamut; @@ -1442,6 +1470,7 @@ declare var ExtendableMessageEvent: { interface FetchEvent extends ExtendableEvent { readonly clientId: string; readonly handled: Promise; + readonly preloadResponse: Promise; readonly request: Request; readonly resultingClientId: string; respondWith(r: Response | PromiseLike): void; @@ -2095,6 +2124,7 @@ declare var ImageBitmapRenderingContext: { /** The underlying pixel data of an area of a element. It is created using the ImageData() constructor or creator methods on the CanvasRenderingContext2D object associated with a canvas: createImageData() and getImageData(). It can also be used to set a part of the canvas by using putImageData(). */ interface ImageData { + readonly colorSpace: PredefinedColorSpace; /** Returns the one-dimensional array containing the data in RGBA order, as integers in the range 0 to 255. */ readonly data: Uint8ClampedArray; /** Returns the actual dimensions of the data in the ImageData object, in pixels. */ @@ -2211,6 +2241,19 @@ declare var MessagePort: { new(): MessagePort; }; +/** Available only in secure contexts. */ +interface NavigationPreloadManager { + disable(): Promise; + enable(): Promise; + getState(): Promise; + setHeaderValue(value: string): Promise; +} + +declare var NavigationPreloadManager: { + prototype: NavigationPreloadManager; + new(): NavigationPreloadManager; +}; + interface NavigatorConcurrentHardware { readonly hardwareConcurrency: number; } @@ -2609,6 +2652,29 @@ declare var PushSubscriptionOptions: { new(): PushSubscriptionOptions; }; +interface RTCEncodedAudioFrame { + data: ArrayBuffer; + readonly timestamp: number; + getMetadata(): RTCEncodedAudioFrameMetadata; +} + +declare var RTCEncodedAudioFrame: { + prototype: RTCEncodedAudioFrame; + new(): RTCEncodedAudioFrame; +}; + +interface RTCEncodedVideoFrame { + data: ArrayBuffer; + readonly timestamp: number; + readonly type: RTCEncodedVideoFrameType; + getMetadata(): RTCEncodedVideoFrameMetadata; +} + +declare var RTCEncodedVideoFrame: { + prototype: RTCEncodedVideoFrame; + new(): RTCEncodedVideoFrame; +}; + /** This Streams API interface represents a readable stream of byte data. The Fetch API offers a concrete instance of a ReadableStream through the body property of a Response object. */ interface ReadableStream { readonly locked: boolean; @@ -3075,6 +3141,19 @@ declare var URLSearchParams: { toString(): string; }; +interface VideoColorSpace { + readonly fullRange: boolean | null; + readonly matrix: VideoMatrixCoefficients | null; + readonly primaries: VideoColorPrimaries | null; + readonly transfer: VideoTransferCharacteristics | null; + toJSON(): VideoColorSpaceInit; +} + +declare var VideoColorSpace: { + prototype: VideoColorSpace; + new(init?: VideoColorSpaceInit): VideoColorSpace; +}; + interface WEBGL_color_buffer_float { readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT: GLenum; readonly RGBA32F_EXT: GLenum; @@ -5188,6 +5267,7 @@ interface WindowOrWorkerGlobalScope { reportError(e: any): void; setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number; setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number; + structuredClone(value: any, options?: StructuredSerializeOptions): any; } interface WorkerEventMap extends AbstractWorkerEventMap { @@ -5727,6 +5807,7 @@ declare function queueMicrotask(callback: VoidFunction): void; declare function reportError(e: any): void; declare function setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number; declare function setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number; +declare function structuredClone(value: any, options?: StructuredSerializeOptions): any; declare function cancelAnimationFrame(handle: number): void; declare function requestAnimationFrame(callback: FrameRequestCallback): number; declare function addEventListener(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; @@ -5807,6 +5888,7 @@ type PermissionState = "denied" | "granted" | "prompt"; type PredefinedColorSpace = "display-p3" | "srgb"; type PremultiplyAlpha = "default" | "none" | "premultiply"; type PushEncryptionKeyName = "auth" | "p256dh"; +type RTCEncodedVideoFrameType = "delta" | "empty" | "key"; type ReferrerPolicy = "" | "no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url"; type RequestCache = "default" | "force-cache" | "no-cache" | "no-store" | "only-if-cached" | "reload"; type RequestCredentials = "include" | "omit" | "same-origin"; @@ -5819,6 +5901,9 @@ type SecurityPolicyViolationEventDisposition = "enforce" | "report"; type ServiceWorkerState = "activated" | "activating" | "installed" | "installing" | "parsed" | "redundant"; type ServiceWorkerUpdateViaCache = "all" | "imports" | "none"; type TransferFunction = "hlg" | "pq" | "srgb"; +type VideoColorPrimaries = "bt470bg" | "bt709" | "smpte170m"; +type VideoMatrixCoefficients = "bt470bg" | "bt709" | "rgb" | "smpte170m"; +type VideoTransferCharacteristics = "bt709" | "iec61966-2-1" | "smpte170m"; type WebGLPowerPreference = "default" | "high-performance" | "low-power"; type WorkerType = "classic" | "module"; type XMLHttpRequestResponseType = "" | "arraybuffer" | "blob" | "document" | "json" | "text"; diff --git a/package-lock.json b/package-lock.json index a774153b7..2374e0a6c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.1", "license": "Apache-2.0", "devDependencies": { - "@mdn/browser-compat-data": "^4.1.1", + "@mdn/browser-compat-data": "^4.1.7", "@octokit/rest": "^18.12.0", "@types/jsdom": "^16.2.14", "@types/node": "^17.0.6", @@ -109,9 +109,9 @@ "dev": true }, "node_modules/@mdn/browser-compat-data": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.1.6.tgz", - "integrity": "sha512-JbtcHGODAlkOT6eDV2rCyOguW3+o34ExMD9DOki6kxzeyN3IBtZ9PI0FlbKeD77Bm5U0UG5Heo4qnNbSajXUnw==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.1.7.tgz", + "integrity": "sha512-rOxg9jU9L3PrwhHI5DEqKOARt/gCXku/j3RvaEfP8hxeMI6bh0Ov1TqcgoajA/D01PXKTuLfEYvF3kWuheRB7w==", "dev": true }, "node_modules/@nodelib/fs.scandir": { @@ -4396,9 +4396,9 @@ "dev": true }, "@mdn/browser-compat-data": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.1.6.tgz", - "integrity": "sha512-JbtcHGODAlkOT6eDV2rCyOguW3+o34ExMD9DOki6kxzeyN3IBtZ9PI0FlbKeD77Bm5U0UG5Heo4qnNbSajXUnw==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.1.7.tgz", + "integrity": "sha512-rOxg9jU9L3PrwhHI5DEqKOARt/gCXku/j3RvaEfP8hxeMI6bh0Ov1TqcgoajA/D01PXKTuLfEYvF3kWuheRB7w==", "dev": true }, "@nodelib/fs.scandir": { diff --git a/src/build/helpers.ts b/src/build/helpers.ts index d0e2e21ba..5f94f4bc5 100644 --- a/src/build/helpers.ts +++ b/src/build/helpers.ts @@ -99,6 +99,9 @@ export function exposesTo(o: { exposed?: string }, target: string[]): boolean { if (!o || typeof o.exposed !== "string") { return true; } + if (o.exposed === "*") { + return true; + } return o.exposed.split(" ").some((e) => target.includes(e)); } diff --git a/src/build/widlprocess.ts b/src/build/widlprocess.ts index 0e966efd8..0b3441b2a 100644 --- a/src/build/widlprocess.ts +++ b/src/build/widlprocess.ts @@ -80,6 +80,9 @@ function getExtAttr(extAttrs: webidl2.ExtendedAttribute[], name: string) { if (!attr || !attr.rhs) { return []; } + if (attr.rhs.type === ("*" as any)) { + return ["*"]; + } return attr.rhs.type === "identifier-list" || attr.rhs.type === "string-list" || attr.rhs.type === "decimal-list" ||