diff --git a/inputfiles/overridingTypes.jsonc b/inputfiles/overridingTypes.jsonc index 54b76e393..dbf0e4d2f 100644 --- a/inputfiles/overridingTypes.jsonc +++ b/inputfiles/overridingTypes.jsonc @@ -1,4165 +1,4165 @@ { - "mixins": { - "mixin": { - "MessageEventTarget": { - "typeParameters": [ - { - "name": "T" - } - ], - "overrideThis": "T", - "events": { - "event": [ - { - "name": "message", - "type": "MessageEvent" - }, - { - "name": "messageerror", - "type": "MessageEvent" - } - ] - } - }, - "ChildNode": { - "extends": "Node" - }, - "ParentNode": { - "extends": "Node" - }, - "Animatable": { - "methods": { - "method": { - "animate": { - "name": "animate", - "signature": { - "0": { - "param": [ - { - "name": "keyframes", - "overrideType": "Keyframe[] | PropertyIndexedKeyframes" - } - ] - } - } - } - } - } - }, - "GlobalEventHandlers": { - "events": { - "event": [ - { - "name": "animationcancel", - "type": "AnimationEvent" - }, - { - "name": "animationend", - "type": "AnimationEvent" - }, - { - "name": "animationiteration", - "type": "AnimationEvent" - }, - { - "name": "animationstart", - "type": "AnimationEvent" - }, - { - "name": "auxclick", - "type": "PointerEvent" - }, - { - "name": "cut", - "type": "ClipboardEvent" - }, - { - "name": "copy", - "type": "ClipboardEvent" - }, - { - "name": "contextmenu", - "type": "PointerEvent" - }, - { - "name": "paste", - "type": "ClipboardEvent" - }, - { - "name": "gotpointercapture", - "type": "PointerEvent" - }, - { - "name": "lostpointercapture", - "type": "PointerEvent" - }, - { - "name": "pointercancel", - "type": "PointerEvent" - }, - { - "name": "pointerdown", - "type": "PointerEvent" - }, - { - "name": "pointerenter", - "type": "PointerEvent" - }, - { - "name": "pointerleave", - "type": "PointerEvent" - }, - { - "name": "pointermove", - "type": "PointerEvent" - }, - { - "name": "pointerout", - "type": "PointerEvent" - }, - { - "name": "pointerover", - "type": "PointerEvent" - }, - { - "name": "pointerup", - "type": "PointerEvent" - }, - { - "name": "touchcancel", - "type": "TouchEvent" - }, - { - "name": "touchend", - "type": "TouchEvent" - }, - { - "name": "touchmove", - "type": "TouchEvent" - }, - { - "name": "touchstart", - "type": "TouchEvent" - }, - { - "name": "transitionrun", - "type": "TransitionEvent" - }, - { - "name": "transitionstart", - "type": "TransitionEvent" - }, - { - "name": "transitionend", - "type": "TransitionEvent" - }, - { - "name": "transitioncancel", - "type": "TransitionEvent" - } - ] - }, - "properties": { - "property": { - "onerror": { - "overrideType": "OnErrorEventHandler" - }, - "ontouchcancel": { - "optional": true - }, - "ontouchend": { - "optional": true - }, - "ontouchmove": { - "optional": true - }, - "ontouchstart": { - "optional": true - } - } - } - }, - "HTMLOrSVGElement": { - "properties": { - "property": { - "nonce": { - "name": "nonce?" + "mixins": { + "mixin": { + "MessageEventTarget": { + "typeParameters": [ + { + "name": "T" } - } + ], + "overrideThis": "T", + "events": { + "event": [ + { + "name": "message", + "type": "MessageEvent" + }, + { + "name": "messageerror", + "type": "MessageEvent" + } + ] } - }, - "WebGLRenderingContextBase": { - "methods": { - "method": { - "getExtension": { - "name": "getExtension", - "additionalSignatures": [ - "getExtension(extensionName: \"ANGLE_instanced_arrays\"): ANGLE_instanced_arrays | null", - "getExtension(extensionName: \"EXT_blend_minmax\"): EXT_blend_minmax | null", - "getExtension(extensionName: \"EXT_color_buffer_float\"): EXT_color_buffer_float | null", - "getExtension(extensionName: \"EXT_color_buffer_half_float\"): EXT_color_buffer_half_float | null", - "getExtension(extensionName: \"EXT_float_blend\"): EXT_float_blend | null", - "getExtension(extensionName: \"EXT_frag_depth\"): EXT_frag_depth | null", - "getExtension(extensionName: \"EXT_sRGB\"): EXT_sRGB | null", - "getExtension(extensionName: \"EXT_shader_texture_lod\"): EXT_shader_texture_lod | null", - "getExtension(extensionName: \"EXT_texture_compression_bptc\"): EXT_texture_compression_bptc | null", - "getExtension(extensionName: \"EXT_texture_compression_rgtc\"): EXT_texture_compression_rgtc | null", - "getExtension(extensionName: \"EXT_texture_filter_anisotropic\"): EXT_texture_filter_anisotropic | null", - "getExtension(extensionName: \"KHR_parallel_shader_compile\"): KHR_parallel_shader_compile | null", - "getExtension(extensionName: \"OES_element_index_uint\"): OES_element_index_uint | null", - "getExtension(extensionName: \"OES_fbo_render_mipmap\"): OES_fbo_render_mipmap | null", - "getExtension(extensionName: \"OES_standard_derivatives\"): OES_standard_derivatives | null", - "getExtension(extensionName: \"OES_texture_float\"): OES_texture_float | null", - "getExtension(extensionName: \"OES_texture_float_linear\"): OES_texture_float_linear | null", - "getExtension(extensionName: \"OES_texture_half_float\"): OES_texture_half_float | null", - "getExtension(extensionName: \"OES_texture_half_float_linear\"): OES_texture_half_float_linear | null", - "getExtension(extensionName: \"OES_vertex_array_object\"): OES_vertex_array_object | null", - "getExtension(extensionName: \"OVR_multiview2\"): OVR_multiview2 | null", - "getExtension(extensionName: \"WEBGL_color_buffer_float\"): WEBGL_color_buffer_float | null", - "getExtension(extensionName: \"WEBGL_compressed_texture_astc\"): WEBGL_compressed_texture_astc | null", - "getExtension(extensionName: \"WEBGL_compressed_texture_etc\"): WEBGL_compressed_texture_etc | null", - "getExtension(extensionName: \"WEBGL_compressed_texture_etc1\"): WEBGL_compressed_texture_etc1 | null", - "getExtension(extensionName: \"WEBGL_compressed_texture_pvrtc\"): WEBGL_compressed_texture_pvrtc | null", - "getExtension(extensionName: \"WEBGL_compressed_texture_s3tc\"): WEBGL_compressed_texture_s3tc | null", - "getExtension(extensionName: \"WEBGL_compressed_texture_s3tc_srgb\"): WEBGL_compressed_texture_s3tc_srgb | null", - "getExtension(extensionName: \"WEBGL_debug_renderer_info\"): WEBGL_debug_renderer_info | null", - "getExtension(extensionName: \"WEBGL_debug_shaders\"): WEBGL_debug_shaders | null", - "getExtension(extensionName: \"WEBGL_depth_texture\"): WEBGL_depth_texture | null", - "getExtension(extensionName: \"WEBGL_draw_buffers\"): WEBGL_draw_buffers | null", - "getExtension(extensionName: \"WEBGL_lose_context\"): WEBGL_lose_context | null", - "getExtension(extensionName: \"WEBGL_multi_draw\"): WEBGL_multi_draw | null" - ] - }, - "pixelStorei": { - "name": "pixelStorei", - "signature": { - "0": { - "param": [ - { - "name": "param", - "additionalTypes": ["GLboolean"] - } - ] - } - } - } - } - } - }, - "CanvasCompositing": { + }, + "ChildNode": { + "extends": "Node" + }, + "ParentNode": { + "extends": "Node" + }, + "Animatable": { + "methods": { + "method": { + "animate": { + "name": "animate", + "signature": { + "0": { + "param": [ + { + "name": "keyframes", + "overrideType": "Keyframe[] | PropertyIndexedKeyframes" + } + ] + } + } + } + } + } + }, + "GlobalEventHandlers": { + "events": { + "event": [ + { + "name": "animationcancel", + "type": "AnimationEvent" + }, + { + "name": "animationend", + "type": "AnimationEvent" + }, + { + "name": "animationiteration", + "type": "AnimationEvent" + }, + { + "name": "animationstart", + "type": "AnimationEvent" + }, + { + "name": "auxclick", + "type": "PointerEvent" + }, + { + "name": "cut", + "type": "ClipboardEvent" + }, + { + "name": "copy", + "type": "ClipboardEvent" + }, + { + "name": "contextmenu", + "type": "PointerEvent" + }, + { + "name": "paste", + "type": "ClipboardEvent" + }, + { + "name": "gotpointercapture", + "type": "PointerEvent" + }, + { + "name": "lostpointercapture", + "type": "PointerEvent" + }, + { + "name": "pointercancel", + "type": "PointerEvent" + }, + { + "name": "pointerdown", + "type": "PointerEvent" + }, + { + "name": "pointerenter", + "type": "PointerEvent" + }, + { + "name": "pointerleave", + "type": "PointerEvent" + }, + { + "name": "pointermove", + "type": "PointerEvent" + }, + { + "name": "pointerout", + "type": "PointerEvent" + }, + { + "name": "pointerover", + "type": "PointerEvent" + }, + { + "name": "pointerup", + "type": "PointerEvent" + }, + { + "name": "touchcancel", + "type": "TouchEvent" + }, + { + "name": "touchend", + "type": "TouchEvent" + }, + { + "name": "touchmove", + "type": "TouchEvent" + }, + { + "name": "touchstart", + "type": "TouchEvent" + }, + { + "name": "transitionrun", + "type": "TransitionEvent" + }, + { + "name": "transitionstart", + "type": "TransitionEvent" + }, + { + "name": "transitionend", + "type": "TransitionEvent" + }, + { + "name": "transitioncancel", + "type": "TransitionEvent" + } + ] + }, "properties": { - "property": { - "globalCompositeOperation": { - "type": "GlobalCompositeOperation" + "property": { + "onerror": { + "overrideType": "OnErrorEventHandler" + }, + "ontouchcancel": { + "optional": true + }, + "ontouchend": { + "optional": true + }, + "ontouchmove": { + "optional": true + }, + "ontouchstart": { + "optional": true + } } - } } - }, - "Body": { - "properties": { - "property": { - "body": { - "overrideType": "ReadableStream" - } - } - } - }, - "WindowOrWorkerGlobalScope": { - "methods": { - "method": { - "clearInterval": { - "signature": { - "0": { - "param": [ - { - "name": "id", - "optional": false, - "additionalTypes": ["undefined"] - } - ] - } - } - }, - "structuredClone": { - "signature": { - "0": { - "typeParameters": [ - { - "name": "T", - "default": "any" - } - ], - "param": [ - { - "name": "value", - "overrideType": "T" - } - ], - "overrideType": "T" - } - } - }, - "clearTimeout": { - "signature": { - "0": { - "param": [ - { - "name": "id", - "optional": false, - "additionalTypes": ["undefined"] - } - ] - } - } - } - } + }, + "HTMLOrSVGElement": { + "properties": { + "property": { + "nonce": { + "name": "nonce?" } + } } - } - }, - "callbackFunctions": { - "callbackFunction": { - "OnErrorEventHandlerNonNull": { - "signature": { - "0": { - "param": [ - { - "name": "error", - "overrideType": "Error" - } - ] - } - } - }, - "QueuingStrategySize": { - "typeParameters": [ - { - "name": "T", - "default": "any" - } - ], - "signature": { - "0": { - "param": [ - { - "name": "chunk", - "overrideType": "T" - } - ] - } - } - }, - "UnderlyingSourceStartCallback": { - "typeParameters": [ - { - "name": "R" - } - ], - "signature": { - "0": { - "param": [ - { - "name": "controller", - "overrideType": "ReadableStreamController" - } - ] - } - } - }, - "UnderlyingSourcePullCallback": { - "typeParameters": [ - { - "name": "R" - } - ], - "signature": { - "0": { - "param": [ - { - "name": "controller", - "overrideType": "ReadableStreamController" - } - ] - } - } - }, - "UnderlyingSinkWriteCallback": { - "typeParameters": [ - { - "name": "W" - } - ], - "signature": { - "0": { - "param": [ - { - "name": "chunk", - "overrideType": "W" - } - ] - } - } - }, - "TransformerFlushCallback": { - "typeParameters": [ - { - "name": "O" - } - ], - "signature": { - "0": { - "param": [ - { - "name": "controller", - "overrideType": "TransformStreamDefaultController" - } - ] - } - } - }, - "TransformerStartCallback": { - "typeParameters": [ - { - "name": "O" - } - ], - "signature": { - "0": { - "param": [ - { - "name": "controller", - "overrideType": "TransformStreamDefaultController" - } - ] - } - } - }, - "TransformerTransformCallback": { - "typeParameters": [ - { - "name": "I" - }, - { - "name": "O" - } - ], - "signature": { - "0": { - "param": [ - { - "name": "chunk", - "overrideType": "I" - }, - { - "name": "controller", - "overrideType": "TransformStreamDefaultController" - } - ] - } - } - }, - "CustomElementConstructor": { - "overrideSignatures": [ - "new (...params: any[]): HTMLElement" - ] - }, - "AudioWorkletProcessorConstructor": { - "overrideSignatures": [ - "new (options: any): AudioWorkletProcessorImpl" - ] - }, - "LockGrantedCallback": { - "typeParameters": [ - { - "name": "T" - } - ], - "signature": { - "0": { - "overrideType": "T" - } + }, + "WebGLRenderingContextBase": { + "methods": { + "method": { + "getExtension": { + "name": "getExtension", + "additionalSignatures": [ + "getExtension(extensionName: \"ANGLE_instanced_arrays\"): ANGLE_instanced_arrays | null", + "getExtension(extensionName: \"EXT_blend_minmax\"): EXT_blend_minmax | null", + "getExtension(extensionName: \"EXT_color_buffer_float\"): EXT_color_buffer_float | null", + "getExtension(extensionName: \"EXT_color_buffer_half_float\"): EXT_color_buffer_half_float | null", + "getExtension(extensionName: \"EXT_float_blend\"): EXT_float_blend | null", + "getExtension(extensionName: \"EXT_frag_depth\"): EXT_frag_depth | null", + "getExtension(extensionName: \"EXT_sRGB\"): EXT_sRGB | null", + "getExtension(extensionName: \"EXT_shader_texture_lod\"): EXT_shader_texture_lod | null", + "getExtension(extensionName: \"EXT_texture_compression_bptc\"): EXT_texture_compression_bptc | null", + "getExtension(extensionName: \"EXT_texture_compression_rgtc\"): EXT_texture_compression_rgtc | null", + "getExtension(extensionName: \"EXT_texture_filter_anisotropic\"): EXT_texture_filter_anisotropic | null", + "getExtension(extensionName: \"KHR_parallel_shader_compile\"): KHR_parallel_shader_compile | null", + "getExtension(extensionName: \"OES_element_index_uint\"): OES_element_index_uint | null", + "getExtension(extensionName: \"OES_fbo_render_mipmap\"): OES_fbo_render_mipmap | null", + "getExtension(extensionName: \"OES_standard_derivatives\"): OES_standard_derivatives | null", + "getExtension(extensionName: \"OES_texture_float\"): OES_texture_float | null", + "getExtension(extensionName: \"OES_texture_float_linear\"): OES_texture_float_linear | null", + "getExtension(extensionName: \"OES_texture_half_float\"): OES_texture_half_float | null", + "getExtension(extensionName: \"OES_texture_half_float_linear\"): OES_texture_half_float_linear | null", + "getExtension(extensionName: \"OES_vertex_array_object\"): OES_vertex_array_object | null", + "getExtension(extensionName: \"OVR_multiview2\"): OVR_multiview2 | null", + "getExtension(extensionName: \"WEBGL_color_buffer_float\"): WEBGL_color_buffer_float | null", + "getExtension(extensionName: \"WEBGL_compressed_texture_astc\"): WEBGL_compressed_texture_astc | null", + "getExtension(extensionName: \"WEBGL_compressed_texture_etc\"): WEBGL_compressed_texture_etc | null", + "getExtension(extensionName: \"WEBGL_compressed_texture_etc1\"): WEBGL_compressed_texture_etc1 | null", + "getExtension(extensionName: \"WEBGL_compressed_texture_pvrtc\"): WEBGL_compressed_texture_pvrtc | null", + "getExtension(extensionName: \"WEBGL_compressed_texture_s3tc\"): WEBGL_compressed_texture_s3tc | null", + "getExtension(extensionName: \"WEBGL_compressed_texture_s3tc_srgb\"): WEBGL_compressed_texture_s3tc_srgb | null", + "getExtension(extensionName: \"WEBGL_debug_renderer_info\"): WEBGL_debug_renderer_info | null", + "getExtension(extensionName: \"WEBGL_debug_shaders\"): WEBGL_debug_shaders | null", + "getExtension(extensionName: \"WEBGL_depth_texture\"): WEBGL_depth_texture | null", + "getExtension(extensionName: \"WEBGL_draw_buffers\"): WEBGL_draw_buffers | null", + "getExtension(extensionName: \"WEBGL_lose_context\"): WEBGL_lose_context | null", + "getExtension(extensionName: \"WEBGL_multi_draw\"): WEBGL_multi_draw | null" + ] + }, + "pixelStorei": { + "name": "pixelStorei", + "signature": { + "0": { + "param": [ + { + "name": "param", + "additionalTypes": ["GLboolean"] + } + ] + } + } + } + } + } + }, + "CanvasCompositing": { + "properties": { + "property": { + "globalCompositeOperation": { + "type": "GlobalCompositeOperation" } + } } - } - }, - "callbackInterfaces": { - "interface": {} - }, - "enums": { - "enum": { - "ImportExportKind": { - "legacyNamespace": "WebAssembly" - }, - "TableKind": { - "legacyNamespace": "WebAssembly" - }, - "ImageOrientation": { - "value": [ - // The spec removed this but it's still in browsers and WebKit doesn't support the new one. - // Keep it until it's safer to fully migrate. - // See https://github.com/microsoft/TypeScript-DOM-lib-generator/issues/1507#issuecomment-1454792451 - "none" - ] - } - } - }, - "interfaces": { - "interface": { - "CryptoKey": { - "properties": { - "property": { - "algorithm": { - "type": "KeyAlgorithm" - }, - "usages": { - "type": "sequence", - "subtype": { - "type": "KeyUsage" - } - } - } - } - }, - "GPUError": { - "exposed": "Window Worker", - // WebKit doesn't have GPUError interface but only subinterfaces as of 2024-11-20 - "noInterfaceObject": true, - "properties": { - "property": { - "message": { - "exposed": "Window Worker" - } - } - } - }, - "GPUPipelineError": { - // Web IDL optional argument can be followed by a required argument, but not in TS - // TODO: Maybe do this in the emitter? - "constructor": { - "signature": { - "0": { - "param": [ - { - "name": "message", - "optional": false - } - ] - } - } - } - }, - "HTMLElement": { - "properties": { - "property": { - "hidden": { - // https://github.com/whatwg/html/pull/7475 - // Blink only as of 2024-11 - "overrideType": "boolean", - "nullable": false - } - } - }, - "methods": { - "method": { - "togglePopover": { - "signature": { - "0": { - "param": [ - { - // dictionary support is Blink only as of 2024-11 - "name": "options", - "type": "boolean" - } - ] - } - } - } - } - } - }, - "MediaMetadata": { - "properties": { - "property": { - "artwork": { - "subtype": { - "type": "MediaImage" - } - } - } - } - }, - "MediaQueryList": { - "methods": { - "method": { - "addListener": { - "deprecated": true, - "signature": { - "0": { - "param": [ - { - "name": "callback", - "overrideType": "(this: MediaQueryList, ev: MediaQueryListEvent) => any" - } - ] - } - } - }, - "removeListener": { - "deprecated": true, - "signature": { - "0": { - "param": [ - { - "name": "callback", - "overrideType": "(this: MediaQueryList, ev: MediaQueryListEvent) => any" - } - ] - } - } - } - } - }, - "events": { - "event": [ - { - "name": "change", - "type": "MediaQueryListEvent" - } - ] - } - }, - "CustomEvent": { - "properties": { - "property": { - "detail": { - "overrideType": "T" - } - } - }, - "methods": { - "method": { - "initCustomEvent": { - "signature": { - "0": { - "param": [ - { - "name": "detail", - "overrideType": "T" - } - ] - } - } - } - } - }, - "typeParameters": [ - { - "name": "T", - "default": "any" - } - ], - "constructor": { - "signature": { - "0": { - "typeParameters": [ - { - "name": "T" - } - ], - "param": [ - { - "name": "eventInitDict", - "overrideType": "CustomEventInit" - } - ], - "overrideType": "CustomEvent" - } - } - } - }, - "Window": { - "properties": { - "property": { - "event": { - "deprecated": true - }, - "location": { - // Pre-TS-5.1 hack to make window.location assignable - "readonly": false - }, - "onorientationchange": { - "deprecated": true - }, - "self": { - "overrideType": "Window & typeof globalThis" - }, - "window": { - "overrideType": "Window & typeof globalThis" - }, - "pageXOffset": { - // While this is indeed an alias of scrollX, it's not a vendor prefixed legacy as aliases usually are. - "deprecated": false - }, - "pageYOffset": { - // While this is indeed an alias of scrollY, it's not a vendor prefixed legacy as aliases usually are. - "deprecated": false - }, - "parent": { - // This is technically nullable, but it only happens in some edge cases, and - // making it nullable breaks compatibility as it has historically been non-nullable in TS lib. - // See the example in https://html.spec.whatwg.org/multipage/nav-history-apis.html#dom-parent. - "nullable": false - } - } - }, - "methods": { - "method": { - "alert": { - "overrideSignatures": [ - "alert(message?: any): void" - ] - }, - "postMessage": { - "signature": { - "0": { - "param": [ - { - "name": "transfer", - "overrideType": "Transferable[]" - } - ] - } - } - } - } - }, - "overrideIndexSignatures": [] - }, - "WebTransport": { - "methods": { - "method": { - "createUnidirectionalStream": { - "signature": { - "0": { - "subtype": { - "type": "WritableStream" - } - } - } - } - } - } - }, - "WebTransportBidirectionalStream": { - "properties": { - "property": { - "readable": { - "type": "ReadableStream" - }, - "writable": { - "type": "WritableStream" - } - } - } - }, - "Document": { - "methods": { - "method": { - "adoptNode": { - "signature": { - "0": { - "typeParameters": [ - { - "name": "T", - "extends": "Node" - } - ], - "param": [ - { - "name": "node", - "overrideType": "T" - } - ], - "overrideType": "T" - } - } - }, - "importNode": { - "signature": { - "0": { - "typeParameters": [ - { - "name": "T", - "extends": "Node" - } - ], - "param": [ - { - "name": "node", - "overrideType": "T" - } - ], - "overrideType": "T" - } - } - }, - "getElementById": { - "name": "getElementById", - "overrideSignatures": [ - "getElementById(elementId: string): HTMLElement | null" - ] - }, - "getElementsByTagNameNS": { - "name": "getElementsByTagNameNS", - "additionalSignatures": [ - "getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/1999/xhtml\", localName: string): HTMLCollectionOf", - "getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/2000/svg\", localName: string): HTMLCollectionOf", - "getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/1998/Math/MathML\", localName: string): HTMLCollectionOf" - ], - "signature": { - "0": { - "overrideType": "HTMLCollectionOf" - } - } - }, - "getElementsByClassName": { - "name": "getElementsByClassName", - "signature": { - "0": { - "overrideType": "HTMLCollectionOf" - } - } - }, - "getElementsByName": { - "name": "getElementsByName", - "signature": { - "0": { - "overrideType": "NodeListOf" - } - } - } - } - }, - "properties": { - "property": { - "defaultView": { - "name": "defaultView", - "overrideType": "WindowProxy & typeof globalThis" - }, - "documentElement": { - "name": "documentElement", - "overrideType": "HTMLElement", - "nullable": false - }, - "head": { - "nullable": false - }, - "anchors": { - "name": "anchors", - "overrideType": "HTMLCollectionOf" - }, - "embeds": { - "name": "embeds", - "overrideType": "HTMLCollectionOf" - }, - "forms": { - "name": "forms", - "overrideType": "HTMLCollectionOf" - }, - "images": { - "name": "images", - "overrideType": "HTMLCollectionOf" - }, - "links": { - "name": "links", - "overrideType": "HTMLCollectionOf" - }, - "plugins": { - "name": "plugins", - "overrideType": "HTMLCollectionOf" - }, - "scripts": { - "name": "scripts", - "overrideType": "HTMLCollectionOf" - }, - "location": { - // Pre-TS-5.1 hack to make document.location assignable - "readonly": false, - // Technically this can be null for a detached iframe. - // But that's an edge case and flipping this also breaks compatibility. - "nullable": false - }, - "body": { - "nullable": false - } - } - } - }, - "DocumentFragment": { - "methods": { - "method": { - "getElementById": { - "name": "getElementById", - "overrideSignatures": [ - "getElementById(elementId: string): HTMLElement | null" - ] - } - } - }, - "properties": { - "property": { - "ownerDocument": { - "name": "ownerDocument", - "readonly": 1, - "type": "Document" - } - } - } - }, - "NavigationActivation": { - // https://github.com/mdn/browser-compat-data/issues/24963 - "exposed": "Window", - "properties": { - "property": { - "entry": { - "exposed": "Window" - }, - "from": { - "exposed": "Window" - }, - "navigationType": { - "exposed": "Window" - } - } - } - }, - "NavigationHistoryEntry": { - // https://github.com/mdn/browser-compat-data/issues/24963 - "exposed": "Window", - "properties": { - "property": { - "url": { - "exposed": "Window" - }, - "key": { - "exposed": "Window" - }, - "id": { - "exposed": "Window" - }, - "index": { - "exposed": "Window" - }, - "sameDocument": { - "exposed": "Window" - }, - "ondispose": { - "exposed": "Window" - } - } - }, - "methods": { - "method": { - "getState": { - "exposed": "Window" - } - } - } - }, - "Node": { - "methods": { - "method": { - "appendChild": { - "signature": { - "0": { - "typeParameters": [ - { - "name": "T", - "extends": "Node" - } - ], - "param": [ - { - "name": "node", - "overrideType": "T" - } - ], - "overrideType": "T" - } - } - }, - "insertBefore": { - "signature": { - "0": { - "typeParameters": [ - { - "name": "T", - "extends": "Node" - } - ], - "param": [ - { - "name": "node", - "overrideType": "T" - } - ], - "overrideType": "T" - } - } - }, - "removeChild": { - "signature": { - "0": { - "typeParameters": [ - { - "name": "T", - "extends": "Node" - } - ], - "param": [ - { - "name": "child", - "overrideType": "T" - } - ], - "overrideType": "T" - } - } - }, - "replaceChild": { - "signature": { - "0": { - "typeParameters": [ - { - "name": "T", - "extends": "Node" - } - ], - "param": [ - { - "name": "child", - "overrideType": "T" - } - ], - "overrideType": "T" - } - } - } - } - }, - "properties": { - "property": { - "parentNode": { - "overrideType": "ParentNode" - }, - "parentElement": { - "overrideType": "HTMLElement" - }, - "childNodes": { - "overrideType": "NodeListOf" - }, - "firstChild": { - "overrideType": "ChildNode" - }, - "lastChild": { - "overrideType": "ChildNode" - }, - "nextSibling": { - "overrideType": "ChildNode" - }, - "previousSibling": { - "overrideType": "ChildNode" - } - } - } - }, - "IDBObjectStore": { - "methods": { - "method": { - "openCursor": { - "name": "openCursor", - "signature": { - "0": { - "param": [ - { - "name": "query", - "overrideType": "IDBValidKey | IDBKeyRange | null" - } - ], - "overrideType": "IDBRequest" - } - } - }, - "openKeyCursor": { - "name": "openKeyCursor", - "signature": { - "0": { - "param": [ - { - "name": "query", - "overrideType": "IDBValidKey | IDBKeyRange | null" - } - ], - "overrideType": "IDBRequest" - } - } - }, - "add": { - "name": "add", - "signature": { - "0": { - "param": [ - { - "name": "key", - "overrideType": "IDBValidKey" - } - ], - "overrideType": "IDBRequest" - } - } - }, - "clear": { - "name": "clear", - "signature": { - "0": { - "overrideType": "IDBRequest" - } - } - }, - "count": { - "name": "count", - "signature": { - "0": { - "param": [ - { - "name": "query", - "overrideType": "IDBValidKey | IDBKeyRange" - } - ], - "overrideType": "IDBRequest" - } - } - }, - "delete": { - "name": "delete", - "signature": { - "0": { - "param": [ - { - "name": "query", - "overrideType": "IDBValidKey | IDBKeyRange" - } - ], - "overrideType": "IDBRequest" - } - } - }, - "put": { - "name": "put", - "signature": { - "0": { - "param": [ - { - "name": "key", - "overrideType": "IDBValidKey" - } - ], - "overrideType": "IDBRequest" - } - } - }, - "get": { - "name": "get", - "signature": { - "0": { - "param": [ - { - "name": "query", - "overrideType": "IDBValidKey | IDBKeyRange" - } - ], - "overrideType": "IDBRequest" - } - } - }, - "getAll": { - "name": "getAll", - "signature": { - "0": { - "param": [ - { - "name": "query", - "overrideType": "IDBValidKey | IDBKeyRange | null" - } - ], - "overrideType": "IDBRequest" - } - } - }, - "getAllKeys": { - "name": "getAllKeys", - "signature": { - "0": { - "param": [ - { - "name": "query", - "overrideType": "IDBValidKey | IDBKeyRange | null" - } - ], - "overrideType": "IDBRequest" - } - } - }, - "getKey": { - "name": "getKey", - "signature": { - "0": { - "param": [ - { - "name": "query", - "overrideType": "IDBValidKey | IDBKeyRange" - } - ], - "overrideType": "IDBRequest" - } - } - } - } - }, - "properties": { - "property": { - "keyPath": { - "name": "keyPath", - "overrideType": "string | string[] | null" - } - } - } - }, - "IDBIndex": { - "properties": { - "property": { - "keyPath": { - "name": "keyPath", - "overrideType": "string | string[]" - } - } - }, - "methods": { - "method": { - "openCursor": { - "name": "openCursor", - "signature": { - "0": { - "param": [ - { - "name": "query", - "overrideType": "IDBValidKey | IDBKeyRange | null" - } - ], - "overrideType": "IDBRequest" - } - } - }, - "openKeyCursor": { - "name": "openKeyCursor", - "signature": { - "0": { - "param": [ - { - "name": "query", - "overrideType": "IDBValidKey | IDBKeyRange | null" - } - ], - "overrideType": "IDBRequest" - } - } - }, - "count": { - "name": "count", - "signature": { - "0": { - "param": [ - { - "name": "query", - "overrideType": "IDBValidKey | IDBKeyRange" - } - ], - "overrideType": "IDBRequest" - } - } - }, - "get": { - "name": "get", - "signature": { - "0": { - "param": [ - { - "name": "query", - "overrideType": "IDBValidKey | IDBKeyRange" - } - ], - "overrideType": "IDBRequest" - } - } - }, - "getAll": { - "name": "getAll", - "signature": { - "0": { - "param": [ - { - "name": "query", - "overrideType": "IDBValidKey | IDBKeyRange | null" - } - ], - "overrideType": "IDBRequest" - } - } - }, - "getAllKeys": { - "name": "getAllKeys", - "signature": { - "0": { - "param": [ - { - "name": "query", - "overrideType": "IDBValidKey | IDBKeyRange | null" - } - ], - "overrideType": "IDBRequest" - } - } - }, - "getKey": { - "name": "getKey", - "signature": { - "0": { - "param": [ - { - "name": "query", - "overrideType": "IDBValidKey | IDBKeyRange" - } - ], - "overrideType": "IDBRequest" - } - } - } - } - } - }, - "HTMLCanvasElement": { - "methods": { - "method": { - "getContext": { - "additionalSignatures": [ - "getContext(contextId: \"2d\", options?: CanvasRenderingContext2DSettings): CanvasRenderingContext2D | null", - "getContext(contextId: \"bitmaprenderer\", options?: ImageBitmapRenderingContextSettings): ImageBitmapRenderingContext | null", - "getContext(contextId: \"webgl\", options?: WebGLContextAttributes): WebGLRenderingContext | null", - "getContext(contextId: \"webgl2\", options?: WebGLContextAttributes): WebGL2RenderingContext | null" - ] - }, - "toBlob": { - "name": "toBlob", - "signature": { - "0": { - "param": [ - { - "name": "quality", - "overrideType": "number" - } - ], - } - } - }, - "toDataURL": { - "name": "toDataURL", - "signature": { - "0": { - "param": [ - { - "name": "quality", - "overrideType": "number" - } - ], - } - } - } - } - } - }, - "OffscreenCanvas": { - "methods": { - "method": { - "getContext": { - "additionalSignatures": [ - "getContext(contextId: \"2d\", options?: any): OffscreenCanvasRenderingContext2D | null", - "getContext(contextId: \"bitmaprenderer\", options?: any): ImageBitmapRenderingContext | null", - "getContext(contextId: \"webgl\", options?: any): WebGLRenderingContext | null", - "getContext(contextId: \"webgl2\", options?: any): WebGL2RenderingContext | null" - ] - } - } - } - }, - "BeforeUnloadEvent": { - "properties": { - "property": { - "returnValue": { - "name": "returnValue", - "overrideType": "any" - } - } - } - }, - "SVGElement": { - "properties": { - "property": { - "className": { - "deprecated": true, - "name": "className", - "type": "any" - } - } - } - }, - "SVGSVGElement": { - "methods": { - "method": { - "getEnclosureList": { - "signature": { - "0": { - "overrideType": "NodeListOf" - } - } - }, - "getIntersectionList": { - "signature": { - "0": { - "overrideType": "NodeListOf" - } - } - } - } - } - }, - "SVGSymbolElement": { - "extends": "SVGElement" - }, - "FormData": { - "methods": { - "method": { - "append": { - "name": "append", - "flavor": "Web", - "additionalSignatures": [ - "append(name: string, value: string | Blob): void" - ] - }, - "set": { - "name": "set", - "flavor": "Web", - "additionalSignatures": [ - "set(name: string, value: string | Blob): void" - ] - } - } - } - }, - "HTMLSelectElement": { - "properties": { - "property": { - "type": { - "name": "type", - "overrideType": "\"select-one\" | \"select-multiple\"" - }, - "autocomplete": { - "name": "autocomplete", - "overrideType": "AutoFill" - }, - "selectedOptions": { - "name": "selectedOptions", - "overrideType": "HTMLCollectionOf" - }, - "labels": { - "name": "labels", - "overrideType": "NodeListOf" - } - } - }, - "overrideIndexSignatures": [ - "[name: number]: HTMLOptionElement | HTMLOptGroupElement" - ] - }, - "HTMLDataListElement": { - "properties": { - "property": { - "options": { - "name": "options", - "overrideType": "HTMLCollectionOf" - } - } - } - }, - "HTMLDirectoryElement": { - "element": [ - { - "name": "dir" - } - ] - }, - "HTMLFontElement": { - "element": [ - { - "name": "font" - } - ] - }, - "HTMLFrameElement": { - "element": [ - { - "name": "frame" - } - ] - }, - "FontFace": { + }, + "Body": { "properties": { - "property": { - "display": { - "type": "FontDisplay" + "property": { + "body": { + "overrideType": "ReadableStream" + } } - } } - }, - "HTMLFrameSetElement": { - "element": [ - { - "name": "frameset" - } - ] - }, - "HTMLTableElement": { - "properties": { - "property": { - "rows": { - "name": "rows", - "overrideType": "HTMLCollectionOf" - }, - "tBodies": { - "name": "tBodies", - "overrideType": "HTMLCollectionOf" - } - } - } - }, - "HTMLTableSectionElement": { - "properties": { - "property": { - "rows": { - "name": "rows", - "overrideType": "HTMLCollectionOf" - } - } - } - }, - "Element": { - "methods": { - "method": { - "getElementsByTagNameNS": { - "name": "getElementsByTagNameNS", - "additionalSignatures": [ - "getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/1999/xhtml\", localName: string): HTMLCollectionOf", - "getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/2000/svg\", localName: string): HTMLCollectionOf", - "getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/1998/Math/MathML\", localName: string): HTMLCollectionOf" - ], - "signature": { - "0": { - "overrideType": "HTMLCollectionOf" - } - } - } - } - } - }, - "DataTransfer": { - "properties": { - "property": { - "dropEffect": { - "name": "dropEffect", - "overrideType": "\"none\" | \"copy\" | \"link\" | \"move\"" - }, - "effectAllowed": { - "name": "effectAllowed", - "overrideType": "\"none\" | \"copy\" | \"copyLink\" | \"copyMove\" | \"link\" | \"linkMove\" | \"move\" | \"all\" | \"uninitialized\"" - } - } - } - }, - "IDBCursor": { - "properties": { - "property": { - "key": { - "name": "key", - "type": "IDBValidKey" - }, - "primaryKey": { - "name": "primaryKey", - "type": "IDBValidKey" - } - } - }, - "methods": { - "method": { - "continue": { - "signature": { - "0": { - "param": [ - { - "name": "key", - "overrideType": "IDBValidKey" - } - ] - } - } - }, - "continuePrimaryKey": { - "signature": { - "0": { - "param": [ - { - "name": "key", - "overrideType": "IDBValidKey" - }, - { - "name": "primaryKey", - "overrideType": "IDBValidKey" - } - ] - } - } - }, - "delete": { - "signature": { - "0": { - "overrideType": "IDBRequest" - } - } - }, - "update": { - "signature": { - "0": { - "overrideType": "IDBRequest" - } - } - } - } - } - }, - "IDBRequest": { - "properties": { - "property": { - "source": { - "name": "source", - "nullable": false - }, - "result": { - "name": "result", - "overrideType": "T" - } - } - }, - "typeParameters": [ - { - "name": "T", - "default": "any" - } - ] - }, - "ImageBitmapRenderingContext": { - "properties": { - "property": { - "canvas": { - "exposed": "Window" - } - } - } - }, - "Storage": { - "overrideIndexSignatures": [ - "[name: string]: any" - ] - }, - "HTMLOptionsCollection": { - "extends": "HTMLCollectionOf" - }, - "SubtleCrypto": { - "methods": { - "method": { - "decrypt": { - "signature": { - "0": { - "param": [ - { - "name": "algorithm", - "additionalTypes": ["RsaOaepParams", "AesCtrParams", "AesCbcParams", "AesGcmParams"] - } - ] - } - } - }, - "deriveBits": { - "signature": { - "0": { - "param": [ - { - "name": "algorithm", - "additionalTypes": ["EcdhKeyDeriveParams", "HkdfParams", "Pbkdf2Params"] - } - ] - } - } - }, - "deriveKey": { - "signature": { - "0": { - "param": [ - { - "name": "algorithm", - "additionalTypes": ["EcdhKeyDeriveParams", "HkdfParams", "Pbkdf2Params"] - }, - { - "name": "derivedKeyType", - "additionalTypes": ["AesDerivedKeyParams", "HmacImportParams", "HkdfParams", "Pbkdf2Params"] - } - ], - "overrideType": "Promise" - } - } - }, - "digest": { - "name": "digest", - "signature": { - "0": { - "overrideType": "Promise" - } - } - }, - "encrypt": { - "signature": { - "0": { - "param": [ - { - "name": "algorithm", - "additionalTypes": ["RsaOaepParams", "AesCtrParams", "AesCbcParams", "AesGcmParams"] - } - ] - } - } - }, - "exportKey": { - "additionalSignatures": [ - "exportKey(format: \"jwk\", key: CryptoKey): Promise", - "exportKey(format: Exclude, key: CryptoKey): Promise" - ], - "signature": { - "0": { - "param": [ - { - "name": "format", - "overrideType": "KeyFormat" - } - ], - "overrideType": "Promise" - } - } - }, - "generateKey": { - "name": "generateKey", - "additionalSignatures": [ - "generateKey(algorithm: \"Ed25519\" | { name: \"Ed25519\" }, extractable: boolean, keyUsages: ReadonlyArray<\"sign\" | \"verify\">): Promise", - "generateKey(algorithm: RsaHashedKeyGenParams | EcKeyGenParams, extractable: boolean, keyUsages: ReadonlyArray): Promise", - "generateKey(algorithm: AesKeyGenParams | HmacKeyGenParams | Pbkdf2Params, extractable: boolean, keyUsages: ReadonlyArray): Promise" - ], - "signature": { - "0": { - "overrideType": "Promise" - } - } - }, - "importKey": { - "name": "importKey", - "additionalSignatures": [ - "importKey(format: \"jwk\", keyData: JsonWebKey, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: ReadonlyArray): Promise" - ], - "signature": { - "0": { - "param": [ - { - "name": "format", - "overrideType": "Exclude" - }, - { - "name": "keyData", - "type": "BufferSource" - }, - { - "name": "algorithm", - "additionalTypes": ["RsaHashedImportParams", "EcKeyImportParams", "HmacImportParams", "AesKeyAlgorithm"] - } - ] - } - }, - "force-references": [ - { - "type": "JsonWebKey" - } - ] - }, - "sign": { - "signature": { - "0": { - "param": [ - { - "name": "algorithm", - "additionalTypes": ["RsaPssParams", "EcdsaParams"] - } - ], - "overrideType": "Promise" - } - } - }, - "unwrapKey": { - "signature": { - "0": { - "param": [ - { - "name": "unwrapAlgorithm", - "additionalTypes": ["RsaOaepParams", "AesCtrParams", "AesCbcParams", "AesGcmParams"] - }, - { - "name": "unwrappedKeyAlgorithm", - "additionalTypes": ["RsaHashedImportParams", "EcKeyImportParams", "HmacImportParams", "AesKeyAlgorithm"] - } - ] - } - } - }, - "verify": { - "signature": { - "0": { - "param": [ - { - "name": "algorithm", - "additionalTypes": ["RsaPssParams", "EcdsaParams"] - } - ], - "overrideType": "Promise" - } - } - }, - "wrapKey": { - "signature": { - "0": { - "param": [ - { - "name": "wrapAlgorithm", - "additionalTypes": ["RsaOaepParams", "AesCtrParams", "AesCbcParams", "AesGcmParams"] - } - ], - "overrideType": "Promise" - } - } - } - } - } - }, - "HTMLInputElement": { - "properties": { - "property": { - "autocomplete": { - "name": "autocomplete", - "overrideType": "AutoFill" - }, - "selectionDirection": { - "name": "selectionDirection", - "overrideType": "\"forward\" | \"backward\" | \"none\"" - }, - "valueAsDate": { - "name": "valueAsDate", - "overrideType": "Date" - } - } - }, - "methods": { - "method": { - "setSelectionRange": { - "signature": { - "0": { - "param": [ - { - "name": "start", - "nullable": true - }, - { - "name": "end", - "nullable": true - }, - { - "name": "direction", - "overrideType": "\"forward\" | \"backward\" | \"none\"" - } - ] - } - } - } - } - } - }, - "MouseEvent": { - "methods": { - "method": { - "initMouseEvent": { - "name": "initMouseEvent", - "overrideSignatures": [ - "initMouseEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, detailArg: number, screenXArg: number, screenYArg: number, clientXArg: number, clientYArg: number, ctrlKeyArg: boolean, altKeyArg: boolean, shiftKeyArg: boolean, metaKeyArg: boolean, buttonArg: number, relatedTargetArg: EventTarget | null): void" - ] - } - } - } - }, - "DOMException": { - "extends": "Error" - }, - "DOMStringMap": { - "overrideIndexSignatures": [ - "[name: string]: string | undefined" - ] - }, - "DOMImplementation": { - "methods": { - "method": { - "hasFeature": { - "overrideSignatures": [ - "hasFeature(...args: any[]): true" - ] - } - } - } - }, - "HTMLButtonElement": { - "properties": { - "property": { - "labels": { - "name": "labels", - "overrideType": "NodeListOf" - }, - "type": { - "overrideType": "\"submit\" | \"reset\" | \"button\"" - } - } - } - }, - "HTMLLabelElement": { - "properties": { - "property": { - "form": { - "name": "form", - "overrideType": "HTMLFormElement" - } - } - } - }, - "HTMLMeterElement": { - "properties": { - "property": { - "labels": { - "name": "labels", - "overrideType": "NodeListOf" - } - } - } - }, - "HTMLOutputElement": { - "properties": { - "property": { - "labels": { - "name": "labels", - "overrideType": "NodeListOf" - } - } - } - }, - "HTMLProgressElement": { - "properties": { - "property": { - "labels": { - "name": "labels", - "overrideType": "NodeListOf" - } - } - } - }, - "HTMLTextAreaElement": { - "properties": { - "property": { - "autocomplete": { - "name": "autocomplete", - "overrideType": "AutoFill" - }, - "labels": { - "name": "labels", - "overrideType": "NodeListOf" - }, - "selectionDirection": { - "name": "selectionDirection", - "overrideType": "\"forward\" | \"backward\" | \"none\"" - } - } - }, - "methods": { - "method": { - "setSelectionRange": { - "signature": { - "0": { - "param": [ - { - "name": "start", - "nullable": true - }, - { - "name": "end", - "nullable": true - }, - { - "name": "direction", - "overrideType": "\"forward\" | \"backward\" | \"none\"" - } - ] - } - } - } - } - } - }, - "ServiceWorkerContainer": { - "methods": { - "method": { - "getRegistration": { - "signature": { - "0": { - "overrideType": "Promise" - } - } - } - } - }, - "events": { - "event": [ - { - "name": "message", - "type": "MessageEvent" - }, - { - "name": "messageerror", - "type": "MessageEvent" - } - ] - } - }, - "WebSocket": { - "methods": { - "method": { - "send": { - "name": "send", - "overrideSignatures": [ - "send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void" - ] - } - } - }, - "events": { - "event": [ - { - "name": "message", - "type": "MessageEvent" - } - ] - } - }, - "WebTransportDatagramDuplexStream": { - "properties": { - "property": { - // WebTransportDatagramsWritable is not implemented by anyone as of 2025-03 - "writable": { - "type": "WritableStream" - } - } - } - }, - "HTMLTableRowElement": { - "properties": { - "property": { - "cells": { - "name": "cells", - "overrideType": "HTMLCollectionOf" - } - } - } - }, - "XMLHttpRequestEventTarget": { - "properties": { - "property": { - "onloadstart": { - "name": "onloadstart", - "overrideType": "((this: XMLHttpRequest, ev: ProgressEvent) => any) | null" - }, - "onprogress": { - "name": "onprogress", - "overrideType": "((this: XMLHttpRequest, ev: ProgressEvent) => any) | null" - }, - "onabort": { - "name": "onabort", - "overrideType": "((this: XMLHttpRequest, ev: ProgressEvent) => any) | null" - }, - "onerror": { - "name": "onerror", - "overrideType": "((this: XMLHttpRequest, ev: ProgressEvent) => any) | null" - }, - "onload": { - "name": "onload", - "overrideType": "((this: XMLHttpRequest, ev: ProgressEvent) => any) | null" - }, - "ontimeout": { - "name": "ontimeout", - "overrideType": "((this: XMLHttpRequest, ev: ProgressEvent) => any) | null" - }, - "onloadend": { - "name": "onloadend", - "overrideType": "((this: XMLHttpRequest, ev: ProgressEvent) => any) | null" - } - } - }, - "events": { - "event": [ - { - "name": "loadstart", - "type": "ProgressEvent" - }, - { - "name": "progress", - "type": "ProgressEvent" - }, - { - "name": "abort", - "type": "ProgressEvent" - }, - { - "name": "error", - "type": "ProgressEvent" - }, - { - "name": "load", - "type": "ProgressEvent" - }, - { - "name": "timeout", - "type": "ProgressEvent" - }, - { - "name": "loadend", - "type": "ProgressEvent" - } - ] - } - }, - "FileReader": { - "events": { - "event": [ - { - "name": "loadstart", - "type": "ProgressEvent" - }, - { - "name": "progress", - "type": "ProgressEvent" - }, - { - "name": "load", - "type": "ProgressEvent" - }, - { - "name": "abort", - "type": "ProgressEvent" - }, - { - "name": "error", - "type": "ProgressEvent" - }, - { - "name": "loadend", - "type": "ProgressEvent" - } - ] - }, - "properties": { - "property": { - "readyState": { - "name": "readyState", - "overrideType": "typeof FileReader.EMPTY | typeof FileReader.LOADING | typeof FileReader.DONE" - } - } - } - }, - "FileSystemDirectoryHandle": { - "iterator": { - // It's true that Blink is the only supported engine for Symbol.asyncIterator, - // WebKit does support the keys/values/entries method and Gecko will soon follow. - // Let's not go back and forth for this one. - "exposed": "Window Worker" - } - }, - "MutationRecord": { - "properties": { - "property": { - "type": { - "name": "type", - "overrideType": "MutationRecordType" - } - } - } - }, - "URL": { - "constructor": { - "signature": { - "0": { - "param": [ - { - "name": "base", - "additionalTypes": ["URL"] - } - ] - } - } - }, - "methods": { - "method": { - "canParse": { - "signature": { - "0": { - "param": [ - { - "name": "base", - "additionalTypes": ["URL"] - } - ] - } - } - }, - "parse": { - "signature": { - "0": { - "param": [ - { - "name": "base", - "additionalTypes": ["URL"] - } - ] - } - } - } - } - } - }, - "Client": { - "properties": { - "property": { - "type": { - "name": "type", - "overrideType": "ClientTypes" - } - } - }, - "methods": { - "method": { - "postMessage": { - "signature": { - "0": { - "param": [ - { - "name": "transfer", - "overrideType": "Transferable[]" - } - ] - } - } - } - } - } - }, - "RTCDataChannel": { - "events": { - "event": [ - { - "name": "message", - "type": "MessageEvent" - } - ] - } - }, - "RTCIceCandidatePair": { - // https://github.com/w3c/webrtc-pc/pull/2961 made this from dictionary to interface, - // but nobody did the change as of 2024-06. - // For now let's roll this back to the dictionary form. - "exposed": "Window", - "noInterfaceObject": true, - "properties": { - "property": { - "local": { - "readonly": false - }, - "remote": { - "readonly": false - } - } - } - }, - "RTCPeerConnection": { - "events": { - "event": [ - { - "name": "track", - "type": "RTCTrackEvent" - }, - { - "name": "icecandidate", - "type": "RTCPeerConnectionIceEvent" - }, - { - "name": "datachannel", - "type": "RTCDataChannelEvent" - }, - { - "name": "icecandidateerror", - "type": "RTCPeerConnectionIceErrorEvent" - } - ] - }, - "methods": { - "method": { - "addIceCandidate": { - "signature": { - "0": { - "param": [ - { - "name": "candidate", - "nullable": true - } - ] - }, - "1": { - "param": [ - { - "name": "candidate", - "nullable": true - } - ], - "deprecated": true - } - } - }, - "createAnswer": { - "signature": { - "1": { - "deprecated": true - } - } - }, - "createOffer": { - "signature": { - "1": { - "deprecated": true - } - } - }, - "setLocalDescription": { - "signature": { - "1": { - "deprecated": true - } - } - }, - "setRemoteDescription": { - "signature": { - "1": { - "deprecated": true - } - } - } - } - } - }, - "ServiceWorkerGlobalScope": { - "events": { - "event": [ - { - "name": "install", - "type": "ExtendableEvent" - }, - { - "name": "activate", - "type": "ExtendableEvent" - }, - { - "name": "fetch", - "type": "FetchEvent" - }, - { - "name": "message", - "type": "ExtendableMessageEvent" - }, - { - "name": "messageerror", - "type": "MessageEvent" - }, - { - "name": "notificationclick", - "type": "NotificationEvent" - }, - { - "name": "notificationclose", - "type": "NotificationEvent" - }, - { - "name": "push", - "type": "PushEvent" - } - ], - "methods": { - "method": { - "waitUntil": { - "signature": { - "0": { - "param": [ - { - "name": "f", - "overrideType": "Promise" - } - ] - } - } - } - } - } - } - }, - "Cache": { - "methods": { - "method": { - "match": { - "name": "match", - "signature": { - "0": { - "overrideType": "Promise" - } - } - } - } - } - }, - "CacheStorage": { - "methods": { - "method": { - "match": { - "name": "match", - "signature": { - "0": { - "overrideType": "Promise" - } - } - } - } - } - }, - "Animation": { - "events": { - "event": [ - { - "name": "finish", - "type": "AnimationPlaybackEvent" - }, - { - "name": "cancel", - "type": "AnimationPlaybackEvent" - } - ] - } - }, - "KeyframeEffect": { - "constructor": { - "signature": { - "0": { - "param": [ - { - "name": "keyframes", - "overrideType": "Keyframe[] | PropertyIndexedKeyframes" - } - ] - } - } - }, - "methods": { - "method": { - "getKeyframes": { - "signature": { - "0": { - "overrideType": "ComputedKeyframe[]" - } - } - }, - "setKeyframes": { - "signature": { - "0": { - "param": [ - { - "name": "keyframes", - "overrideType": "Keyframe[] | PropertyIndexedKeyframes" - } - ] - } - } - } - } - } - }, - "HTMLMarqueeElement": { - "element": [ - { - "name": "marquee" - } - ] - }, - "Worker": { - "methods": { - "method": { - "postMessage": { - "signature": { - "0": { - "param": [ - { - "name": "transfer", - "overrideType": "Transferable[]" - } - ] - } - } - } - } - } - }, - "Crypto": { - "methods": { - "method": { - "getRandomValues": { - "signature": { - "0": { - "typeParameters": [ - { - "name": "T", - "extends": "ArrayBufferView | null" - } - ], - "param": [ - { - "name": "array", - "overrideType": "T" - } - ], - "overrideType": "T" - } - } - }, - "randomUUID": { - "signature": { - "0": { - "overrideType": "`${string}-${string}-${string}-${string}-${string}`" - } - } - } - } - } - }, - "OfflineAudioContext": { - "events": { - "event": [ - { - "name": "complete", - "type": "OfflineAudioCompletionEvent" - } - ] - } - }, - "PannerNode": { - "methods": { - "method": { - "setPosition": { - "name": "setPosition", - "deprecated": true - }, - "setOrientation": { - "name": "setOrientation", - "deprecated": true - } - } - } - }, - "PromiseRejectionEvent": { - "properties": { - "property": { - "promise": { - "overrideType": "Promise" - } - } - } - }, - "ScriptProcessorNode": { - "events": { - "event": [ - { - "name": "audioprocess", - "type": "AudioProcessingEvent" - } - ] - } - }, - "MessagePort": { - "methods": { - "method": { - "postMessage": { - "signature": { - "0": { - "param": [ - { - "name": "transfer", - "overrideType": "Transferable[]" - } - ] - } - } - } - } - }, - "events": { - "event": [ - { - "name": "message", - "type": "MessageEvent" - }, - { - "name": "messageerror", - "type": "MessageEvent" - } - ] - } - }, - "ServiceWorker": { - "methods": { - "method": { - "postMessage": { - "signature": { - "0": { - "param": [ - { - "name": "transfer", - "overrideType": "Transferable[]" - } - ] - } - } - } - } - } - }, - "DedicatedWorkerGlobalScope": { - "methods": { - "method": { - "postMessage": { - "signature": { - "0": { - "param": [ - { - "name": "transfer", - "overrideType": "Transferable[]" - } - ] - } - } - } - } - }, - "events": { - "event": [ - { - "name": "message", - "type": "MessageEvent" - }, - { - "name": "messageerror", - "type": "MessageEvent" - } - ] - } - }, - "HTMLFormElement": { - "overrideIndexSignatures": [ - "[index: number]: Element", - "[name: string]: any" - ], - "properties": { - "property": { - "autocomplete": { - "name": "autocomplete", - "overrideType": "AutoFillBase" - } - } - } - }, - "Blob": { + }, + "WindowOrWorkerGlobalScope": { "methods": { - "method": { - "stream": { - "signature": { - "0": { - "overrideType": "ReadableStream" + "method": { + "clearInterval": { + "signature": { + "0": { + "param": [ + { + "name": "id", + "optional": false, + "additionalTypes": ["undefined"] + } + ] + } + } + }, + "structuredClone": { + "signature": { + "0": { + "typeParameters": [ + { + "name": "T", + "default": "any" + } + ], + "param": [ + { + "name": "value", + "overrideType": "T" + } + ], + "overrideType": "T" + } + } + }, + "clearTimeout": { + "signature": { + "0": { + "param": [ + { + "name": "id", + "optional": false, + "additionalTypes": ["undefined"] + } + ] + } + } } - } } - } } - }, - "ReadableStream": { - "typeParameters": [ - { - "name": "R", - "default": "any" - } - ], - "constructor": { - "signature": { - "0": { - "param": [ - { - "name": "underlyingSource", - "optional": false, - "type": "UnderlyingByteSource" - }, - { - "name": "strategy", - "overrideType": "{ highWaterMark?: number }" - } - ], - "overrideType": "ReadableStream" - }, - "1": { - "typeParameters": [ - { - "name": "R", - "default": "any" - } - ], - "param": [ - { - "name": "underlyingSource", - "optional": false, - "overrideType": "UnderlyingDefaultSource" - }, - { - "name": "strategy", - "optional": true, - "overrideType": "QueuingStrategy" - } - ], - "overrideType": "ReadableStream" - }, - "2": { - "typeParameters": [ - { - "name": "R", - "default": "any" - } - ], - "param": [ - { - "name": "underlyingSource", - "optional": true, - "overrideType": "UnderlyingSource" - }, - { - "name": "strategy", - "optional": true, - "overrideType": "QueuingStrategy" - } - ], - "overrideType": "ReadableStream" - } - }, - "force-references": [ - { - "type": "UnderlyingSource" - }, - { - "type": "UnderlyingByteSource" - }, - { - "type": "UnderlyingDefaultSource" - }, - { - "type": "QueuingStrategy" - } - ] - }, - "methods": { - "method": { - "getReader": { - "additionalSignatures": [ - "getReader(options: { mode: \"byob\" }): ReadableStreamBYOBReader", - "getReader(): ReadableStreamDefaultReader" - ], - "signature": { - "0": { - "overrideType": "ReadableStreamReader" - } - } - }, - "pipeThrough": { - "signature": { - "0": { - "typeParameters": [ - { - "name": "T" - } - ], - "param": [ - { - "name": "transform", - "overrideType": "ReadableWritablePair" - } - ], - "overrideType": "ReadableStream" - } - } - }, - "pipeTo": { - "signature": { - "0": { - "param": [ - { - "name": "destination", - "overrideType": "WritableStream" - } - ] - } - } - }, - "tee": { - "signature": { - "0": { - "overrideType": "[ReadableStream, ReadableStream]" - } - } - } - } - }, - "iterator": { - "type": { - "0": { - "overrideType": "R" - } - } - } - }, - "ReadableStreamBYOBReader": { - "constructor": { - "signature": { - "0": { - "param": [ - { - "name": "stream", - "overrideType": "ReadableStream" - } - ] - } - } - }, - "methods": { - "method": { - "read": { - "signature": { - "0": { - "typeParameters": [ - { - "name": "T", - "extends": "ArrayBufferView" - } - ], - "param": [ - { - "name": "view", - "overrideType": "T" - } - ], - "overrideType": "Promise>" - } - } - } - } - } - }, - "ReadableStreamDefaultReader": { - "typeParameters": [ - { - "name": "R", - "default": "any" - } - ], - "constructor": { - "signature": { - "0": { - "typeParameters": [ - { - "name": "R", - "default": "any" - } - ], - "param": [ - { - "name": "stream", - "overrideType": "ReadableStream" - } - ], - "overrideType": "ReadableStreamDefaultReader" - } - } - }, - "methods": { - "method": { - "read": { - "signature": { - "0": { - "overrideType": "Promise>" - } - } - } - } - } - }, - "ReadableStreamDefaultController": { - "typeParameters": [ - { - "name": "R", - "default": "any" - } - ], - "methods": { - "method": { - "enqueue": { - "signature": { - "0": { - "param": [ - { - "name": "chunk", - "overrideType": "R" - } - ] - } - } - } - } - } - }, - "WritableStream": { - "constructor": { - "signature": { - "0": { - "typeParameters": [ - { - "name": "W", - "default": "any" - } - ], - "param": [ - { - "name": "underlyingSink", - "overrideType": "UnderlyingSink" - }, - { - "name": "strategy", - "overrideType": "QueuingStrategy" - } - ], - "overrideType": "WritableStream" - } - }, - "force-references": [ - { - "type": "UnderlyingSink" - }, - { - "type": "QueuingStrategy" - } - ] - }, - "typeParameters": [ - { - "name": "W", - "default": "any" - } - ], - "methods": { - "method": { - "getWriter": { - "signature": { - "0": { - "overrideType": "WritableStreamDefaultWriter" - } - } - } - } - } - }, - "WritableStreamDefaultWriter": { - "typeParameters": [ - { - "name": "W", - "default": "any" - } - ], - "constructor": { - "signature": { - "0": { - "typeParameters": [ - { - "name": "W", - "default": "any" - } - ], - "param": [ - { - "name": "stream", - "overrideType": "WritableStream" - } - ], - "overrideType": "WritableStreamDefaultWriter" - } - } - }, - "methods": { - "method": { - "write": { - "signature": { - "0": { - "param": [ - { - "name": "chunk", - "overrideType": "W" - } - ] - } - } - } - } - } - }, - "TransformStream": { - "typeParameters": [ - { - "name": "I", - "default": "any" - }, - { - "name": "O", - "default": "any" - } - ], - "properties": { - "property": { - "readable": { - "overrideType": "ReadableStream" - }, - "writable": { - "overrideType": "WritableStream" - } - } - }, - "constructor": { - "signature": { - "0": { - "typeParameters": [ - { - "name": "I", - "default": "any" - }, - { - "name": "O", - "default": "any" - } - ], - "param": [ - { - "name": "transformer", - "overrideType": "Transformer" - }, - { - "name": "writableStrategy", - "overrideType": "QueuingStrategy" - }, - { - "name": "readableStrategy", - "overrideType": "QueuingStrategy" - } - ], - "overrideType": "TransformStream" - } - }, - "force-references": [ - { - "type": "Transformer" - }, - { - "type": "QueuingStrategy" - } - ] - } - }, - "TransformStreamDefaultController": { - "typeParameters": [ - { - "name": "O", - "default": "any" - } - ], - "methods": { - "method": { - "enqueue": { - "signature": { - "0": { - "param": [ - { - "name": "chunk", - "overrideType": "O" - } - ] - } - } - } - } - } - }, - "ByteLengthQueuingStrategy": { - "extends": "QueuingStrategy", - "properties": { - "property": { - "size": { - "name": "size", - "overrideType": [ - "QueuingStrategySize" - ] - } - } - } - }, - "CountQueuingStrategy": { - "extends": "QueuingStrategy", - "properties": { - "property": { - "size": { - "name": "size", - "overrideType": [ - "QueuingStrategySize" - ] - } - } - } - }, - "CompressionStream": { - "properties": { - "property": { - "readable": { - "name": "readable", - "readonly": true, - "overrideType": "ReadableStream" - }, - "writable": { - "name": "writable", - "readonly": true, - "overrideType": "WritableStream" - } - } - } - }, - "DecompressionStream": { - "properties": { - "property": { - "readable": { - "name": "readable", - "readonly": true, - "overrideType": "ReadableStream" - }, - "writable": { - "name": "writable", - "readonly": true, - "overrideType": "WritableStream" - } - } - } - }, - "TextDecoderStream": { - "properties": { - "property": { - "readable": { - "name": "readable", - "readonly": true, - "overrideType": "ReadableStream" - }, - "writable": { - "name": "writable", - "readonly": true, - "overrideType": "WritableStream" - } - } - } - }, - "TextEncoderStream": { - "properties": { - "property": { - "readable": { - "name": "readable", - "readonly": true, - "overrideType": "ReadableStream" - }, - "writable": { - "name": "writable", - "readonly": true, - "overrideType": "WritableStream" - } - } - } - }, - "Permissions": { - "methods": { - "method": { - "query": { - "signature": { - "0": { - "param": [ - { - "name": "permissionDesc", - "type": "PermissionDescriptor" - } - ] - } - } - } - } - } - }, - "ExtendableEvent": { - "methods": { - "method": { - "waitUntil": { - "signature": { - "0": { - "param": [ - { - "name": "f", - "overrideType": "Promise" - } - ] - } - } - } - } - } - }, - "EventTarget": { - "methods": { - "method": { - "addEventListener": { - "signature": { - "0": { - "param": [ - { - "name": "callback", - "overrideType": "EventListenerOrEventListenerObject" - } - ] - } - } - }, - "removeEventListener": { - "signature": { - "0": { - "param": [ - { - "name": "callback", - "overrideType": "EventListenerOrEventListenerObject" - } - ] - } - } - } - } - } - }, - "WorkerGlobalScope": { - "properties": { - "property": { - "self": { - "overrideType": "WorkerGlobalScope & typeof globalThis" - } - } - }, - "events": { - "event": [ - { - "name": "error", - "type": "ErrorEvent" - } - ] - } - }, - "InstallEvent": { - // https://github.com/mdn/browser-compat-data/issues/22591 - "exposed": "" - }, - "Instance": { - "constructor": { - "signature": { - "0": { - "param": [ - { - "name": "importObject", - "type": "Imports" - } - ] - } - } - }, - "properties": { - "property": { - "exports": { - "type": "Exports" - } - } - } - }, - "MediaKeySession": { - "events": { - "event": [ - { - "name": "message", - "type": "MediaKeyMessageEvent" - } - ] - } - }, - "MessageEvent": { - "properties": { - "property": { - "data": { - "overrideType": "T" - } - } - }, - "typeParameters": [ - { - "name": "T", - "default": "any" - } - ], - "constructor": { - "signature": { - "0": { - "typeParameters": [ - { - "name": "T" - } - ], - "param": [ - { - "name": "eventInitDict", - "overrideType": "MessageEventInit" - } - ], - "overrideType": "MessageEvent" - } - } - } - }, - "MIDIAccess": { - "exposed": "Window", // Window only on Gecko/Blink as of 2024-07 - "transferable": false // Not transferable on Gecko/Blink as of 2024-07 - }, - "MIDIConnectionEvent": { - "exposed": "Window" // Window only on Gecko/Blink as of 2024-07 - }, - "MIDIInput": { - "exposed": "Window", // Window only on Gecko/Blink as of 2024-07 - "events": { - "event": [ - { - "name": "midimessage", - "type": "MIDIMessageEvent" - } - ] - } - }, - "MIDIInputMap": { - "exposed": "Window" // Window only on Gecko/Blink as of 2024-07 - }, - "MIDIMessageEvent": { - "exposed": "Window" // Window only on Gecko/Blink as of 2024-07 - }, - "MIDIOutput": { - "exposed": "Window" // Window only on Gecko/Blink as of 2024-07 - }, - "MIDIOutputMap": { - "exposed": "Window" // Window only on Gecko/Blink as of 2024-07 - }, - "MIDIPort": { - "exposed": "Window", // Window only on Gecko/Blink as of 2024-07 - "events": { - "event": [ - { - "name": "statechange", - "type": "MIDIConnectionEvent" - } - ] - } - }, - "Clients": { - "methods": { - "method": { - "get": { - "signature": { - "0": { - "overrideType": "Promise" - } - } - }, - "matchAll": { - "signature": { - "0": { - "typeParameters": [ - { - "name": "T", - "extends": "ClientQueryOptions" - } - ], - "param": [ - { - "name": "options", - "overrideType": "T" - } - ], - "overrideType": "Promise>" - } - } - } - } - } - }, - "CSSFontFaceRule": { - "properties": { - "property": { - "style": { - // CSS Fonts Level 4 now says CSSFontFaceDescriptors but nobody implements it as of 2024-04 - // https://github.com/w3c/csswg-drafts/pull/9686 - "type": "CSSStyleDeclaration" - } - } - } - }, - "CSSKeyframeRule": { - "properties": { - "property": { - "style": { - // CSS Fonts Level 4 now says CSSStyleProperties but nobody implements it as of 2024-04 - // https://github.com/w3c/csswg-drafts/pull/9686 - "type": "CSSStyleDeclaration" - } - } - } - }, - "CSSPageRule": { - "properties": { - "property": { - "style": { - // CSS Fonts Level 4 now says CSSPageDescriptors but nobody implements it as of 2024-04 - // https://github.com/w3c/csswg-drafts/pull/9686 - "type": "CSSStyleDeclaration" - } - } - } - }, - "CSSNestedDeclarations": { - "properties": { - "property": { - "style": { - // CSS Fonts Level 4 now says CSSPageDescriptors but nobody implements it as of 2024-04 - // https://github.com/w3c/csswg-drafts/pull/9686 - "type": "CSSStyleDeclaration" - } - } - } - }, - "CSSStyleDeclaration": { - "properties": { - "property": { - "cssFloat": { - // CSS Fonts Level 4 now puts this in CSSStyleProperties but nobody implements it as of 2024-04 - // https://github.com/w3c/csswg-drafts/pull/9686 - "name": "cssFloat", - "type": "CSSOMString", - "mdnUrl": "https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/cssFloat" - }, - "webkitLineClamp": { - // The corresponding standardized property is not supported by anyone as of 2024-10. - "deprecated": false - } - } - } - }, - "CSSStyleRule": { - "properties": { - "property": { - "style": { - // CSS Fonts Level 4 now says CSSStyleProperties but nobody implements it as of 2024-04 - // https://github.com/w3c/csswg-drafts/pull/9686 - "type": "CSSStyleDeclaration" - } - } - } - }, - "ContactAddress": { - "name": "PaymentAddress" - }, - "HTMLMediaElement": { - "properties": { - "property": { - "preload": { - "overrideType": "\"none\" | \"metadata\" | \"auto\" | \"\"" - } - } + } + } + }, + "callbackFunctions": { + "callbackFunction": { + "OnErrorEventHandlerNonNull": { + "signature": { + "0": { + "param": [ + { + "name": "error", + "overrideType": "Error" + } + ] + } + } + }, + "QueuingStrategySize": { + "typeParameters": [ + { + "name": "T", + "default": "any" + } + ], + "signature": { + "0": { + "param": [ + { + "name": "chunk", + "overrideType": "T" + } + ] + } + } + }, + "UnderlyingSourceStartCallback": { + "typeParameters": [ + { + "name": "R" + } + ], + "signature": { + "0": { + "param": [ + { + "name": "controller", + "overrideType": "ReadableStreamController" + } + ] + } + } + }, + "UnderlyingSourcePullCallback": { + "typeParameters": [ + { + "name": "R" + } + ], + "signature": { + "0": { + "param": [ + { + "name": "controller", + "overrideType": "ReadableStreamController" + } + ] + } + } + }, + "UnderlyingSinkWriteCallback": { + "typeParameters": [ + { + "name": "W" + } + ], + "signature": { + "0": { + "param": [ + { + "name": "chunk", + "overrideType": "W" + } + ] + } + } + }, + "TransformerFlushCallback": { + "typeParameters": [ + { + "name": "O" + } + ], + "signature": { + "0": { + "param": [ + { + "name": "controller", + "overrideType": "TransformStreamDefaultController" + } + ] + } + } + }, + "TransformerStartCallback": { + "typeParameters": [ + { + "name": "O" + } + ], + "signature": { + "0": { + "param": [ + { + "name": "controller", + "overrideType": "TransformStreamDefaultController" + } + ] + } + } + }, + "TransformerTransformCallback": { + "typeParameters": [ + { + "name": "I" + }, + { + "name": "O" + } + ], + "signature": { + "0": { + "param": [ + { + "name": "chunk", + "overrideType": "I" + }, + { + "name": "controller", + "overrideType": "TransformStreamDefaultController" + } + ] + } + } + }, + "CustomElementConstructor": { + "overrideSignatures": [ + "new (...params: any[]): HTMLElement" + ] + }, + "AudioWorkletProcessorConstructor": { + "overrideSignatures": [ + "new (options: any): AudioWorkletProcessorImpl" + ] + }, + "LockGrantedCallback": { + "typeParameters": [ + { + "name": "T" + } + ], + "signature": { + "0": { + "overrideType": "T" + } + } + } + } + }, + "callbackInterfaces": { + "interface": {} + }, + "enums": { + "enum": { + "ImportExportKind": { + "legacyNamespace": "WebAssembly" + }, + "TableKind": { + "legacyNamespace": "WebAssembly" + }, + "ImageOrientation": { + "value": [ + // The spec removed this but it's still in browsers and WebKit doesn't support the new one. + // Keep it until it's safer to fully migrate. + // See https://github.com/microsoft/TypeScript-DOM-lib-generator/issues/1507#issuecomment-1454792451 + "none" + ] + } + } + }, + "interfaces": { + "interface": { + "CryptoKey": { + "properties": { + "property": { + "algorithm": { + "type": "KeyAlgorithm" + }, + "usages": { + "type": "sequence", + "subtype": { + "type": "KeyUsage" + } + } + } + } + }, + "GPUError": { + "exposed": "Window Worker", + // WebKit doesn't have GPUError interface but only subinterfaces as of 2024-11-20 + "noInterfaceObject": true, + "properties": { + "property": { + "message": { + "exposed": "Window Worker" + } + } + } + }, + "GPUPipelineError": { + // Web IDL optional argument can be followed by a required argument, but not in TS + // TODO: Maybe do this in the emitter? + "constructor": { + "signature": { + "0": { + "param": [ + { + "name": "message", + "optional": false + } + ] + } + } + } + }, + "HTMLElement": { + "properties": { + "property": { + "hidden": { + // https://github.com/whatwg/html/pull/7475 + // Blink only as of 2024-11 + "overrideType": "boolean", + "nullable": false + } + } + }, + "methods": { + "method": { + "togglePopover": { + "signature": { + "0": { + "param": [ + { + // dictionary support is Blink only as of 2024-11 + "name": "options", + "type": "boolean" + } + ] + } + } + } + } + } + }, + "MediaMetadata": { + "properties": { + "property": { + "artwork": { + "subtype": { + "type": "MediaImage" + } + } + } + } + }, + "MediaQueryList": { + "methods": { + "method": { + "addListener": { + "deprecated": true, + "signature": { + "0": { + "param": [ + { + "name": "callback", + "overrideType": "(this: MediaQueryList, ev: MediaQueryListEvent) => any" + } + ] + } + } + }, + "removeListener": { + "deprecated": true, + "signature": { + "0": { + "param": [ + { + "name": "callback", + "overrideType": "(this: MediaQueryList, ev: MediaQueryListEvent) => any" + } + ] + } + } + } + } + }, + "events": { + "event": [ + { + "name": "change", + "type": "MediaQueryListEvent" + } + ] + } + }, + "CustomEvent": { + "properties": { + "property": { + "detail": { + "overrideType": "T" + } + } + }, + "methods": { + "method": { + "initCustomEvent": { + "signature": { + "0": { + "param": [ + { + "name": "detail", + "overrideType": "T" + } + ] + } + } + } + } + }, + "typeParameters": [ + { + "name": "T", + "default": "any" + } + ], + "constructor": { + "signature": { + "0": { + "typeParameters": [ + { + "name": "T" + } + ], + "param": [ + { + "name": "eventInitDict", + "overrideType": "CustomEventInit" + } + ], + "overrideType": "CustomEvent" + } + } + } + }, + "Window": { + "properties": { + "property": { + "event": { + "deprecated": true + }, + "location": { + // Pre-TS-5.1 hack to make window.location assignable + "readonly": false + }, + "onorientationchange": { + "deprecated": true + }, + "self": { + "overrideType": "Window & typeof globalThis" + }, + "window": { + "overrideType": "Window & typeof globalThis" + }, + "pageXOffset": { + // While this is indeed an alias of scrollX, it's not a vendor prefixed legacy as aliases usually are. + "deprecated": false + }, + "pageYOffset": { + // While this is indeed an alias of scrollY, it's not a vendor prefixed legacy as aliases usually are. + "deprecated": false + }, + "parent": { + // This is technically nullable, but it only happens in some edge cases, and + // making it nullable breaks compatibility as it has historically been non-nullable in TS lib. + // See the example in https://html.spec.whatwg.org/multipage/nav-history-apis.html#dom-parent. + "nullable": false + } + } + }, + "methods": { + "method": { + "alert": { + "overrideSignatures": [ + "alert(message?: any): void" + ] + }, + "postMessage": { + "signature": { + "0": { + "param": [ + { + "name": "transfer", + "overrideType": "Transferable[]" + } + ] + } + } + } + } + }, + "overrideIndexSignatures": [] + }, + "WebTransport": { + "methods": { + "method": { + "createUnidirectionalStream": { + "signature": { + "0": { + "subtype": { + "type": "WritableStream" + } + } + } + } + } + } + }, + "WebTransportBidirectionalStream": { + "properties": { + "property": { + "readable": { + "type": "ReadableStream" + }, + "writable": { + "type": "WritableStream" + } + } + } + }, + "Document": { + "methods": { + "method": { + "adoptNode": { + "signature": { + "0": { + "typeParameters": [ + { + "name": "T", + "extends": "Node" + } + ], + "param": [ + { + "name": "node", + "overrideType": "T" + } + ], + "overrideType": "T" + } + } + }, + "importNode": { + "signature": { + "0": { + "typeParameters": [ + { + "name": "T", + "extends": "Node" + } + ], + "param": [ + { + "name": "node", + "overrideType": "T" + } + ], + "overrideType": "T" + } + } + }, + "getElementById": { + "name": "getElementById", + "overrideSignatures": [ + "getElementById(elementId: string): HTMLElement | null" + ] + }, + "getElementsByTagNameNS": { + "name": "getElementsByTagNameNS", + "additionalSignatures": [ + "getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/1999/xhtml\", localName: string): HTMLCollectionOf", + "getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/2000/svg\", localName: string): HTMLCollectionOf", + "getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/1998/Math/MathML\", localName: string): HTMLCollectionOf" + ], + "signature": { + "0": { + "overrideType": "HTMLCollectionOf" + } + } + }, + "getElementsByClassName": { + "name": "getElementsByClassName", + "signature": { + "0": { + "overrideType": "HTMLCollectionOf" + } + } + }, + "getElementsByName": { + "name": "getElementsByName", + "signature": { + "0": { + "overrideType": "NodeListOf" + } + } + } + } + }, + "properties": { + "property": { + "defaultView": { + "name": "defaultView", + "overrideType": "WindowProxy & typeof globalThis" + }, + "documentElement": { + "name": "documentElement", + "overrideType": "HTMLElement", + "nullable": false + }, + "head": { + "nullable": false + }, + "anchors": { + "name": "anchors", + "overrideType": "HTMLCollectionOf" + }, + "embeds": { + "name": "embeds", + "overrideType": "HTMLCollectionOf" + }, + "forms": { + "name": "forms", + "overrideType": "HTMLCollectionOf" + }, + "images": { + "name": "images", + "overrideType": "HTMLCollectionOf" + }, + "links": { + "name": "links", + "overrideType": "HTMLCollectionOf" + }, + "plugins": { + "name": "plugins", + "overrideType": "HTMLCollectionOf" + }, + "scripts": { + "name": "scripts", + "overrideType": "HTMLCollectionOf" + }, + "location": { + // Pre-TS-5.1 hack to make document.location assignable + "readonly": false, + // Technically this can be null for a detached iframe. + // But that's an edge case and flipping this also breaks compatibility. + "nullable": false + }, + "body": { + "nullable": false + } + } + } + }, + "DocumentFragment": { + "methods": { + "method": { + "getElementById": { + "name": "getElementById", + "overrideSignatures": [ + "getElementById(elementId: string): HTMLElement | null" + ] + } + } + }, + "properties": { + "property": { + "ownerDocument": { + "name": "ownerDocument", + "readonly": 1, + "type": "Document" + } + } + } + }, + "NavigationActivation": { + // https://github.com/mdn/browser-compat-data/issues/24963 + "exposed": "Window", + "properties": { + "property": { + "entry": { + "exposed": "Window" + }, + "from": { + "exposed": "Window" + }, + "navigationType": { + "exposed": "Window" + } + } + } + }, + "NavigationHistoryEntry": { + // https://github.com/mdn/browser-compat-data/issues/24963 + "exposed": "Window", + "properties": { + "property": { + "url": { + "exposed": "Window" + }, + "key": { + "exposed": "Window" + }, + "id": { + "exposed": "Window" + }, + "index": { + "exposed": "Window" + }, + "sameDocument": { + "exposed": "Window" + }, + "ondispose": { + "exposed": "Window" + } + } + }, + "methods": { + "method": { + "getState": { + "exposed": "Window" + } + } + } + }, + "Node": { + "methods": { + "method": { + "appendChild": { + "signature": { + "0": { + "typeParameters": [ + { + "name": "T", + "extends": "Node" + } + ], + "param": [ + { + "name": "node", + "overrideType": "T" + } + ], + "overrideType": "T" + } + } + }, + "insertBefore": { + "signature": { + "0": { + "typeParameters": [ + { + "name": "T", + "extends": "Node" + } + ], + "param": [ + { + "name": "node", + "overrideType": "T" + } + ], + "overrideType": "T" + } + } + }, + "removeChild": { + "signature": { + "0": { + "typeParameters": [ + { + "name": "T", + "extends": "Node" + } + ], + "param": [ + { + "name": "child", + "overrideType": "T" + } + ], + "overrideType": "T" + } + } + }, + "replaceChild": { + "signature": { + "0": { + "typeParameters": [ + { + "name": "T", + "extends": "Node" + } + ], + "param": [ + { + "name": "child", + "overrideType": "T" + } + ], + "overrideType": "T" + } + } + } + } + }, + "properties": { + "property": { + "parentNode": { + "overrideType": "ParentNode" + }, + "parentElement": { + "overrideType": "HTMLElement" + }, + "childNodes": { + "overrideType": "NodeListOf" + }, + "firstChild": { + "overrideType": "ChildNode" + }, + "lastChild": { + "overrideType": "ChildNode" + }, + "nextSibling": { + "overrideType": "ChildNode" + }, + "previousSibling": { + "overrideType": "ChildNode" + } + } + } + }, + "IDBObjectStore": { + "methods": { + "method": { + "openCursor": { + "name": "openCursor", + "signature": { + "0": { + "param": [ + { + "name": "query", + "overrideType": "IDBValidKey | IDBKeyRange | null" + } + ], + "overrideType": "IDBRequest" + } + } + }, + "openKeyCursor": { + "name": "openKeyCursor", + "signature": { + "0": { + "param": [ + { + "name": "query", + "overrideType": "IDBValidKey | IDBKeyRange | null" + } + ], + "overrideType": "IDBRequest" + } + } + }, + "add": { + "name": "add", + "signature": { + "0": { + "param": [ + { + "name": "key", + "overrideType": "IDBValidKey" + } + ], + "overrideType": "IDBRequest" + } + } + }, + "clear": { + "name": "clear", + "signature": { + "0": { + "overrideType": "IDBRequest" + } + } + }, + "count": { + "name": "count", + "signature": { + "0": { + "param": [ + { + "name": "query", + "overrideType": "IDBValidKey | IDBKeyRange" + } + ], + "overrideType": "IDBRequest" + } + } + }, + "delete": { + "name": "delete", + "signature": { + "0": { + "param": [ + { + "name": "query", + "overrideType": "IDBValidKey | IDBKeyRange" + } + ], + "overrideType": "IDBRequest" + } + } + }, + "put": { + "name": "put", + "signature": { + "0": { + "param": [ + { + "name": "key", + "overrideType": "IDBValidKey" + } + ], + "overrideType": "IDBRequest" + } + } + }, + "get": { + "name": "get", + "signature": { + "0": { + "param": [ + { + "name": "query", + "overrideType": "IDBValidKey | IDBKeyRange" + } + ], + "overrideType": "IDBRequest" + } + } + }, + "getAll": { + "name": "getAll", + "signature": { + "0": { + "param": [ + { + "name": "query", + "overrideType": "IDBValidKey | IDBKeyRange | null" + } + ], + "overrideType": "IDBRequest" + } + } + }, + "getAllKeys": { + "name": "getAllKeys", + "signature": { + "0": { + "param": [ + { + "name": "query", + "overrideType": "IDBValidKey | IDBKeyRange | null" + } + ], + "overrideType": "IDBRequest" + } + } + }, + "getKey": { + "name": "getKey", + "signature": { + "0": { + "param": [ + { + "name": "query", + "overrideType": "IDBValidKey | IDBKeyRange" + } + ], + "overrideType": "IDBRequest" + } + } + } + } + }, + "properties": { + "property": { + "keyPath": { + "name": "keyPath", + "overrideType": "string | string[] | null" + } + } + } + }, + "IDBIndex": { + "properties": { + "property": { + "keyPath": { + "name": "keyPath", + "overrideType": "string | string[]" + } + } + }, + "methods": { + "method": { + "openCursor": { + "name": "openCursor", + "signature": { + "0": { + "param": [ + { + "name": "query", + "overrideType": "IDBValidKey | IDBKeyRange | null" + } + ], + "overrideType": "IDBRequest" + } + } + }, + "openKeyCursor": { + "name": "openKeyCursor", + "signature": { + "0": { + "param": [ + { + "name": "query", + "overrideType": "IDBValidKey | IDBKeyRange | null" + } + ], + "overrideType": "IDBRequest" + } + } + }, + "count": { + "name": "count", + "signature": { + "0": { + "param": [ + { + "name": "query", + "overrideType": "IDBValidKey | IDBKeyRange" + } + ], + "overrideType": "IDBRequest" + } + } + }, + "get": { + "name": "get", + "signature": { + "0": { + "param": [ + { + "name": "query", + "overrideType": "IDBValidKey | IDBKeyRange" + } + ], + "overrideType": "IDBRequest" + } + } + }, + "getAll": { + "name": "getAll", + "signature": { + "0": { + "param": [ + { + "name": "query", + "overrideType": "IDBValidKey | IDBKeyRange | null" + } + ], + "overrideType": "IDBRequest" + } + } + }, + "getAllKeys": { + "name": "getAllKeys", + "signature": { + "0": { + "param": [ + { + "name": "query", + "overrideType": "IDBValidKey | IDBKeyRange | null" + } + ], + "overrideType": "IDBRequest" + } + } + }, + "getKey": { + "name": "getKey", + "signature": { + "0": { + "param": [ + { + "name": "query", + "overrideType": "IDBValidKey | IDBKeyRange" + } + ], + "overrideType": "IDBRequest" + } + } + } + } + } + }, + "HTMLCanvasElement": { + "methods": { + "method": { + "getContext": { + "additionalSignatures": [ + "getContext(contextId: \"2d\", options?: CanvasRenderingContext2DSettings): CanvasRenderingContext2D | null", + "getContext(contextId: \"bitmaprenderer\", options?: ImageBitmapRenderingContextSettings): ImageBitmapRenderingContext | null", + "getContext(contextId: \"webgl\", options?: WebGLContextAttributes): WebGLRenderingContext | null", + "getContext(contextId: \"webgl2\", options?: WebGLContextAttributes): WebGL2RenderingContext | null" + ] + }, + "toBlob": { + "name": "toBlob", + "signature": { + "0": { + "param": [ + { + "name": "quality", + "overrideType": "number" + } + ], + } + } + }, + "toDataURL": { + "name": "toDataURL", + "signature": { + "0": { + "param": [ + { + "name": "quality", + "overrideType": "number" + } + ], + } + } + } + } + } + }, + "OffscreenCanvas": { + "methods": { + "method": { + "getContext": { + "additionalSignatures": [ + "getContext(contextId: \"2d\", options?: any): OffscreenCanvasRenderingContext2D | null", + "getContext(contextId: \"bitmaprenderer\", options?: any): ImageBitmapRenderingContext | null", + "getContext(contextId: \"webgl\", options?: any): WebGLRenderingContext | null", + "getContext(contextId: \"webgl2\", options?: any): WebGL2RenderingContext | null" + ] + } + } + } + }, + "BeforeUnloadEvent": { + "properties": { + "property": { + "returnValue": { + "name": "returnValue", + "overrideType": "any" + } + } + } + }, + "SVGElement": { + "properties": { + "property": { + "className": { + "deprecated": true, + "name": "className", + "type": "any" + } + } + } + }, + "SVGSVGElement": { + "methods": { + "method": { + "getEnclosureList": { + "signature": { + "0": { + "overrideType": "NodeListOf" + } + } + }, + "getIntersectionList": { + "signature": { + "0": { + "overrideType": "NodeListOf" + } + } + } + } + } + }, + "SVGSymbolElement": { + "extends": "SVGElement" + }, + "FormData": { + "methods": { + "method": { + "append": { + "name": "append", + "flavor": "Web", + "additionalSignatures": [ + "append(name: string, value: string | Blob): void" + ] + }, + "set": { + "name": "set", + "flavor": "Web", + "additionalSignatures": [ + "set(name: string, value: string | Blob): void" + ] + } + } + } + }, + "HTMLSelectElement": { + "properties": { + "property": { + "type": { + "name": "type", + "overrideType": "\"select-one\" | \"select-multiple\"" + }, + "autocomplete": { + "name": "autocomplete", + "overrideType": "AutoFill" + }, + "selectedOptions": { + "name": "selectedOptions", + "overrideType": "HTMLCollectionOf" + }, + "labels": { + "name": "labels", + "overrideType": "NodeListOf" + } + } + }, + "overrideIndexSignatures": [ + "[name: number]: HTMLOptionElement | HTMLOptGroupElement" + ] + }, + "HTMLDataListElement": { + "properties": { + "property": { + "options": { + "name": "options", + "overrideType": "HTMLCollectionOf" + } + } + } + }, + "HTMLDirectoryElement": { + "element": [ + { + "name": "dir" + } + ] + }, + "HTMLFontElement": { + "element": [ + { + "name": "font" + } + ] + }, + "HTMLFrameElement": { + "element": [ + { + "name": "frame" + } + ] + }, + "FontFace": { + "properties": { + "property": { + "display": { + "type": "FontDisplay" } - }, - "Global": { - "name": "Global", - "typeParameters": [ - { - "name": "T", - "extends": "ValueType", - "default": "ValueType" - } - ], - "constructor": { - "overrideSignatures": [ - "new(descriptor: GlobalDescriptor, v?: ValueTypeMap[T]): Global" - ] - }, - "properties": { - "property": { - "value": { - "overrideType": "ValueTypeMap[T]" - } - } - }, - "methods": { - "method": { - "valueOf": { - "overrideSignatures": [ - "valueOf(): ValueTypeMap[T]" - ] - } + } + } + }, + "HTMLFrameSetElement": { + "element": [ + { + "name": "frameset" + } + ] + }, + "HTMLTableElement": { + "properties": { + "property": { + "rows": { + "name": "rows", + "overrideType": "HTMLCollectionOf" + }, + "tBodies": { + "name": "tBodies", + "overrideType": "HTMLCollectionOf" + } + } + } + }, + "HTMLTableSectionElement": { + "properties": { + "property": { + "rows": { + "name": "rows", + "overrideType": "HTMLCollectionOf" + } + } + } + }, + "Element": { + "methods": { + "method": { + "getElementsByTagNameNS": { + "name": "getElementsByTagNameNS", + "additionalSignatures": [ + "getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/1999/xhtml\", localName: string): HTMLCollectionOf", + "getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/2000/svg\", localName: string): HTMLCollectionOf", + "getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/1998/Math/MathML\", localName: string): HTMLCollectionOf" + ], + "signature": { + "0": { + "overrideType": "HTMLCollectionOf" + } + } + } + } + } + }, + "DataTransfer": { + "properties": { + "property": { + "dropEffect": { + "name": "dropEffect", + "overrideType": "\"none\" | \"copy\" | \"link\" | \"move\"" + }, + "effectAllowed": { + "name": "effectAllowed", + "overrideType": "\"none\" | \"copy\" | \"copyLink\" | \"copyMove\" | \"link\" | \"linkMove\" | \"move\" | \"all\" | \"uninitialized\"" + } + } + } + }, + "IDBCursor": { + "properties": { + "property": { + "key": { + "name": "key", + "type": "IDBValidKey" + }, + "primaryKey": { + "name": "primaryKey", + "type": "IDBValidKey" + } + } + }, + "methods": { + "method": { + "continue": { + "signature": { + "0": { + "param": [ + { + "name": "key", + "overrideType": "IDBValidKey" + } + ] + } + } + }, + "continuePrimaryKey": { + "signature": { + "0": { + "param": [ + { + "name": "key", + "overrideType": "IDBValidKey" + }, + { + "name": "primaryKey", + "overrideType": "IDBValidKey" + } + ] + } + } + }, + "delete": { + "signature": { + "0": { + "overrideType": "IDBRequest" + } + } + }, + "update": { + "signature": { + "0": { + "overrideType": "IDBRequest" + } + } + } + } + } + }, + "IDBRequest": { + "properties": { + "property": { + "source": { + "name": "source", + "nullable": false + }, + "result": { + "name": "result", + "overrideType": "T" + } + } + }, + "typeParameters": [ + { + "name": "T", + "default": "any" + } + ] + }, + "ImageBitmapRenderingContext": { + "properties": { + "property": { + "canvas": { + "exposed": "Window" + } + } + } + }, + "Storage": { + "overrideIndexSignatures": [ + "[name: string]: any" + ] + }, + "HTMLOptionsCollection": { + "extends": "HTMLCollectionOf" + }, + "SubtleCrypto": { + "methods": { + "method": { + "decrypt": { + "signature": { + "0": { + "param": [ + { + "name": "algorithm", + "additionalTypes": ["RsaOaepParams", "AesCtrParams", "AesCbcParams", "AesGcmParams"] + } + ] + } + } + }, + "deriveBits": { + "signature": { + "0": { + "param": [ + { + "name": "algorithm", + "additionalTypes": ["EcdhKeyDeriveParams", "HkdfParams", "Pbkdf2Params"] + } + ] + } + } + }, + "deriveKey": { + "signature": { + "0": { + "param": [ + { + "name": "algorithm", + "additionalTypes": ["EcdhKeyDeriveParams", "HkdfParams", "Pbkdf2Params"] + }, + { + "name": "derivedKeyType", + "additionalTypes": ["AesDerivedKeyParams", "HmacImportParams", "HkdfParams", "Pbkdf2Params"] + } + ], + "overrideType": "Promise" + } + } + }, + "digest": { + "name": "digest", + "signature": { + "0": { + "overrideType": "Promise" + } + } + }, + "encrypt": { + "signature": { + "0": { + "param": [ + { + "name": "algorithm", + "additionalTypes": ["RsaOaepParams", "AesCtrParams", "AesCbcParams", "AesGcmParams"] + } + ] + } + } + }, + "exportKey": { + "additionalSignatures": [ + "exportKey(format: \"jwk\", key: CryptoKey): Promise", + "exportKey(format: Exclude, key: CryptoKey): Promise" + ], + "signature": { + "0": { + "param": [ + { + "name": "format", + "overrideType": "KeyFormat" + } + ], + "overrideType": "Promise" + } + } + }, + "generateKey": { + "name": "generateKey", + "additionalSignatures": [ + "generateKey(algorithm: \"Ed25519\" | { name: \"Ed25519\" }, extractable: boolean, keyUsages: ReadonlyArray<\"sign\" | \"verify\">): Promise", + "generateKey(algorithm: RsaHashedKeyGenParams | EcKeyGenParams, extractable: boolean, keyUsages: ReadonlyArray): Promise", + "generateKey(algorithm: AesKeyGenParams | HmacKeyGenParams | Pbkdf2Params, extractable: boolean, keyUsages: ReadonlyArray): Promise" + ], + "signature": { + "0": { + "overrideType": "Promise" + } + } + }, + "importKey": { + "name": "importKey", + "additionalSignatures": [ + "importKey(format: \"jwk\", keyData: JsonWebKey, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: ReadonlyArray): Promise" + ], + "signature": { + "0": { + "param": [ + { + "name": "format", + "overrideType": "Exclude" + }, + { + "name": "keyData", + "type": "BufferSource" + }, + { + "name": "algorithm", + "additionalTypes": ["RsaHashedImportParams", "EcKeyImportParams", "HmacImportParams", "AesKeyAlgorithm"] + } + ] + } + }, + "force-references": [ + { + "type": "JsonWebKey" + } + ] + }, + "sign": { + "signature": { + "0": { + "param": [ + { + "name": "algorithm", + "additionalTypes": ["RsaPssParams", "EcdsaParams"] + } + ], + "overrideType": "Promise" + } + } + }, + "unwrapKey": { + "signature": { + "0": { + "param": [ + { + "name": "unwrapAlgorithm", + "additionalTypes": ["RsaOaepParams", "AesCtrParams", "AesCbcParams", "AesGcmParams"] + }, + { + "name": "unwrappedKeyAlgorithm", + "additionalTypes": ["RsaHashedImportParams", "EcKeyImportParams", "HmacImportParams", "AesKeyAlgorithm"] + } + ] + } + } + }, + "verify": { + "signature": { + "0": { + "param": [ + { + "name": "algorithm", + "additionalTypes": ["RsaPssParams", "EcdsaParams"] + } + ], + "overrideType": "Promise" + } + } + }, + "wrapKey": { + "signature": { + "0": { + "param": [ + { + "name": "wrapAlgorithm", + "additionalTypes": ["RsaOaepParams", "AesCtrParams", "AesCbcParams", "AesGcmParams"] + } + ], + "overrideType": "Promise" + } + } + } + } + } + }, + "HTMLInputElement": { + "properties": { + "property": { + "autocomplete": { + "name": "autocomplete", + "overrideType": "AutoFill" + }, + "selectionDirection": { + "name": "selectionDirection", + "overrideType": "\"forward\" | \"backward\" | \"none\"" + }, + "valueAsDate": { + "name": "valueAsDate", + "overrideType": "Date" + } + } + }, + "methods": { + "method": { + "setSelectionRange": { + "signature": { + "0": { + "param": [ + { + "name": "start", + "nullable": true + }, + { + "name": "end", + "nullable": true + }, + { + "name": "direction", + "overrideType": "\"forward\" | \"backward\" | \"none\"" + } + ] + } + } + } + } + } + }, + "MouseEvent": { + "methods": { + "method": { + "initMouseEvent": { + "name": "initMouseEvent", + "overrideSignatures": [ + "initMouseEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, viewArg: Window, detailArg: number, screenXArg: number, screenYArg: number, clientXArg: number, clientYArg: number, ctrlKeyArg: boolean, altKeyArg: boolean, shiftKeyArg: boolean, metaKeyArg: boolean, buttonArg: number, relatedTargetArg: EventTarget | null): void" + ] + } + } + } + }, + "DOMException": { + "extends": "Error" + }, + "DOMStringMap": { + "overrideIndexSignatures": [ + "[name: string]: string | undefined" + ] + }, + "DOMImplementation": { + "methods": { + "method": { + "hasFeature": { + "overrideSignatures": [ + "hasFeature(...args: any[]): true" + ] + } + } + } + }, + "HTMLButtonElement": { + "properties": { + "property": { + "labels": { + "name": "labels", + "overrideType": "NodeListOf" + }, + "type": { + "overrideType": "\"submit\" | \"reset\" | \"button\"" + } + } + } + }, + "HTMLLabelElement": { + "properties": { + "property": { + "form": { + "name": "form", + "overrideType": "HTMLFormElement" + } + } + } + }, + "HTMLMeterElement": { + "properties": { + "property": { + "labels": { + "name": "labels", + "overrideType": "NodeListOf" + } + } + } + }, + "HTMLOutputElement": { + "properties": { + "property": { + "labels": { + "name": "labels", + "overrideType": "NodeListOf" + } + } + } + }, + "HTMLProgressElement": { + "properties": { + "property": { + "labels": { + "name": "labels", + "overrideType": "NodeListOf" + } + } + } + }, + "HTMLTextAreaElement": { + "properties": { + "property": { + "autocomplete": { + "name": "autocomplete", + "overrideType": "AutoFill" + }, + "labels": { + "name": "labels", + "overrideType": "NodeListOf" + }, + "selectionDirection": { + "name": "selectionDirection", + "overrideType": "\"forward\" | \"backward\" | \"none\"" + } + } + }, + "methods": { + "method": { + "setSelectionRange": { + "signature": { + "0": { + "param": [ + { + "name": "start", + "nullable": true + }, + { + "name": "end", + "nullable": true + }, + { + "name": "direction", + "overrideType": "\"forward\" | \"backward\" | \"none\"" + } + ] + } + } + } + } + } + }, + "ServiceWorkerContainer": { + "methods": { + "method": { + "getRegistration": { + "signature": { + "0": { + "overrideType": "Promise" + } + } + } + } + }, + "events": { + "event": [ + { + "name": "message", + "type": "MessageEvent" + }, + { + "name": "messageerror", + "type": "MessageEvent" + } + ] + } + }, + "WebSocket": { + "methods": { + "method": { + "send": { + "name": "send", + "overrideSignatures": [ + "send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void" + ] + } + } + }, + "events": { + "event": [ + { + "name": "message", + "type": "MessageEvent" + } + ] + } + }, + "WebTransportDatagramDuplexStream": { + "properties": { + "property": { + // WebTransportDatagramsWritable is not implemented by anyone as of 2025-03 + "writable": { + "type": "WritableStream" + } + } + } + }, + "HTMLTableRowElement": { + "properties": { + "property": { + "cells": { + "name": "cells", + "overrideType": "HTMLCollectionOf" + } + } + } + }, + "XMLHttpRequestEventTarget": { + "properties": { + "property": { + "onloadstart": { + "name": "onloadstart", + "overrideType": "((this: XMLHttpRequest, ev: ProgressEvent) => any) | null" + }, + "onprogress": { + "name": "onprogress", + "overrideType": "((this: XMLHttpRequest, ev: ProgressEvent) => any) | null" + }, + "onabort": { + "name": "onabort", + "overrideType": "((this: XMLHttpRequest, ev: ProgressEvent) => any) | null" + }, + "onerror": { + "name": "onerror", + "overrideType": "((this: XMLHttpRequest, ev: ProgressEvent) => any) | null" + }, + "onload": { + "name": "onload", + "overrideType": "((this: XMLHttpRequest, ev: ProgressEvent) => any) | null" + }, + "ontimeout": { + "name": "ontimeout", + "overrideType": "((this: XMLHttpRequest, ev: ProgressEvent) => any) | null" + }, + "onloadend": { + "name": "onloadend", + "overrideType": "((this: XMLHttpRequest, ev: ProgressEvent) => any) | null" + } + } + }, + "events": { + "event": [ + { + "name": "loadstart", + "type": "ProgressEvent" + }, + { + "name": "progress", + "type": "ProgressEvent" + }, + { + "name": "abort", + "type": "ProgressEvent" + }, + { + "name": "error", + "type": "ProgressEvent" + }, + { + "name": "load", + "type": "ProgressEvent" + }, + { + "name": "timeout", + "type": "ProgressEvent" + }, + { + "name": "loadend", + "type": "ProgressEvent" + } + ] + } + }, + "FileReader": { + "events": { + "event": [ + { + "name": "loadstart", + "type": "ProgressEvent" + }, + { + "name": "progress", + "type": "ProgressEvent" + }, + { + "name": "load", + "type": "ProgressEvent" + }, + { + "name": "abort", + "type": "ProgressEvent" + }, + { + "name": "error", + "type": "ProgressEvent" + }, + { + "name": "loadend", + "type": "ProgressEvent" + } + ] + }, + "properties": { + "property": { + "readyState": { + "name": "readyState", + "overrideType": "typeof FileReader.EMPTY | typeof FileReader.LOADING | typeof FileReader.DONE" + } + } + } + }, + "FileSystemDirectoryHandle": { + "iterator": { + // It's true that Blink is the only supported engine for Symbol.asyncIterator, + // WebKit does support the keys/values/entries method and Gecko will soon follow. + // Let's not go back and forth for this one. + "exposed": "Window Worker" + } + }, + "MutationRecord": { + "properties": { + "property": { + "type": { + "name": "type", + "overrideType": "MutationRecordType" + } + } + } + }, + "URL": { + "constructor": { + "signature": { + "0": { + "param": [ + { + "name": "base", + "additionalTypes": ["URL"] + } + ] + } + } + }, + "methods": { + "method": { + "canParse": { + "signature": { + "0": { + "param": [ + { + "name": "base", + "additionalTypes": ["URL"] + } + ] + } + } + }, + "parse": { + "signature": { + "0": { + "param": [ + { + "name": "base", + "additionalTypes": ["URL"] + } + ] + } + } + } + } + } + }, + "Client": { + "properties": { + "property": { + "type": { + "name": "type", + "overrideType": "ClientTypes" + } + } + }, + "methods": { + "method": { + "postMessage": { + "signature": { + "0": { + "param": [ + { + "name": "transfer", + "overrideType": "Transferable[]" + } + ] + } + } + } + } + } + }, + "RTCDataChannel": { + "events": { + "event": [ + { + "name": "message", + "type": "MessageEvent" + } + ] + } + }, + "RTCIceCandidatePair": { + // https://github.com/w3c/webrtc-pc/pull/2961 made this from dictionary to interface, + // but nobody did the change as of 2024-06. + // For now let's roll this back to the dictionary form. + "exposed": "Window", + "noInterfaceObject": true, + "properties": { + "property": { + "local": { + "readonly": false + }, + "remote": { + "readonly": false + } + } + } + }, + "RTCPeerConnection": { + "events": { + "event": [ + { + "name": "track", + "type": "RTCTrackEvent" + }, + { + "name": "icecandidate", + "type": "RTCPeerConnectionIceEvent" + }, + { + "name": "datachannel", + "type": "RTCDataChannelEvent" + }, + { + "name": "icecandidateerror", + "type": "RTCPeerConnectionIceErrorEvent" + } + ] + }, + "methods": { + "method": { + "addIceCandidate": { + "signature": { + "0": { + "param": [ + { + "name": "candidate", + "nullable": true + } + ] + }, + "1": { + "param": [ + { + "name": "candidate", + "nullable": true + } + ], + "deprecated": true + } + } + }, + "createAnswer": { + "signature": { + "1": { + "deprecated": true + } + } + }, + "createOffer": { + "signature": { + "1": { + "deprecated": true + } + } + }, + "setLocalDescription": { + "signature": { + "1": { + "deprecated": true + } + } + }, + "setRemoteDescription": { + "signature": { + "1": { + "deprecated": true + } + } + } + } + } + }, + "ServiceWorkerGlobalScope": { + "events": { + "event": [ + { + "name": "install", + "type": "ExtendableEvent" + }, + { + "name": "activate", + "type": "ExtendableEvent" + }, + { + "name": "fetch", + "type": "FetchEvent" + }, + { + "name": "message", + "type": "ExtendableMessageEvent" + }, + { + "name": "messageerror", + "type": "MessageEvent" + }, + { + "name": "notificationclick", + "type": "NotificationEvent" + }, + { + "name": "notificationclose", + "type": "NotificationEvent" + }, + { + "name": "push", + "type": "PushEvent" + } + ], + "methods": { + "method": { + "waitUntil": { + "signature": { + "0": { + "param": [ + { + "name": "f", + "overrideType": "Promise" + } + ] + } + } + } + } + } + } + }, + "Cache": { + "methods": { + "method": { + "match": { + "name": "match", + "signature": { + "0": { + "overrideType": "Promise" + } + } + } + } + } + }, + "CacheStorage": { + "methods": { + "method": { + "match": { + "name": "match", + "signature": { + "0": { + "overrideType": "Promise" + } + } + } + } + } + }, + "Animation": { + "events": { + "event": [ + { + "name": "finish", + "type": "AnimationPlaybackEvent" + }, + { + "name": "cancel", + "type": "AnimationPlaybackEvent" + } + ] + } + }, + "KeyframeEffect": { + "constructor": { + "signature": { + "0": { + "param": [ + { + "name": "keyframes", + "overrideType": "Keyframe[] | PropertyIndexedKeyframes" + } + ] + } + } + }, + "methods": { + "method": { + "getKeyframes": { + "signature": { + "0": { + "overrideType": "ComputedKeyframe[]" + } + } + }, + "setKeyframes": { + "signature": { + "0": { + "param": [ + { + "name": "keyframes", + "overrideType": "Keyframe[] | PropertyIndexedKeyframes" + } + ] + } + } + } + } + } + }, + "HTMLMarqueeElement": { + "element": [ + { + "name": "marquee" + } + ] + }, + "Worker": { + "methods": { + "method": { + "postMessage": { + "signature": { + "0": { + "param": [ + { + "name": "transfer", + "overrideType": "Transferable[]" + } + ] + } + } + } + } + } + }, + "Crypto": { + "methods": { + "method": { + "getRandomValues": { + "signature": { + "0": { + "typeParameters": [ + { + "name": "T", + "extends": "ArrayBufferView | null" + } + ], + "param": [ + { + "name": "array", + "overrideType": "T" + } + ], + "overrideType": "T" + } + } + }, + "randomUUID": { + "signature": { + "0": { + "overrideType": "`${string}-${string}-${string}-${string}-${string}`" + } + } + } + } + } + }, + "OfflineAudioContext": { + "events": { + "event": [ + { + "name": "complete", + "type": "OfflineAudioCompletionEvent" + } + ] + } + }, + "PannerNode": { + "methods": { + "method": { + "setPosition": { + "name": "setPosition", + "deprecated": true + }, + "setOrientation": { + "name": "setOrientation", + "deprecated": true + } + } + } + }, + "PromiseRejectionEvent": { + "properties": { + "property": { + "promise": { + "overrideType": "Promise" + } + } + } + }, + "ScriptProcessorNode": { + "events": { + "event": [ + { + "name": "audioprocess", + "type": "AudioProcessingEvent" + } + ] + } + }, + "MessagePort": { + "methods": { + "method": { + "postMessage": { + "signature": { + "0": { + "param": [ + { + "name": "transfer", + "overrideType": "Transferable[]" + } + ] + } + } + } + } + }, + "events": { + "event": [ + { + "name": "message", + "type": "MessageEvent" + }, + { + "name": "messageerror", + "type": "MessageEvent" + } + ] + } + }, + "ServiceWorker": { + "methods": { + "method": { + "postMessage": { + "signature": { + "0": { + "param": [ + { + "name": "transfer", + "overrideType": "Transferable[]" + } + ] + } + } + } + } + } + }, + "DedicatedWorkerGlobalScope": { + "methods": { + "method": { + "postMessage": { + "signature": { + "0": { + "param": [ + { + "name": "transfer", + "overrideType": "Transferable[]" + } + ] + } + } + } + } + }, + "events": { + "event": [ + { + "name": "message", + "type": "MessageEvent" + }, + { + "name": "messageerror", + "type": "MessageEvent" + } + ] + } + }, + "HTMLFormElement": { + "overrideIndexSignatures": [ + "[index: number]: Element", + "[name: string]: any" + ], + "properties": { + "property": { + "autocomplete": { + "name": "autocomplete", + "overrideType": "AutoFillBase" + } + } + } + }, + "Blob": { + "methods": { + "method": { + "stream": { + "signature": { + "0": { + "overrideType": "ReadableStream" } + } } - }, + } + } + }, + "ReadableStream": { + "typeParameters": [ + { + "name": "R", + "default": "any" + } + ], + "constructor": { + "signature": { + "0": { + "param": [ + { + "name": "underlyingSource", + "optional": false, + "type": "UnderlyingByteSource" + }, + { + "name": "strategy", + "overrideType": "{ highWaterMark?: number }" + } + ], + "overrideType": "ReadableStream" + }, + "1": { + "typeParameters": [ + { + "name": "R", + "default": "any" + } + ], + "param": [ + { + "name": "underlyingSource", + "optional": false, + "overrideType": "UnderlyingDefaultSource" + }, + { + "name": "strategy", + "optional": true, + "overrideType": "QueuingStrategy" + } + ], + "overrideType": "ReadableStream" + }, + "2": { + "typeParameters": [ + { + "name": "R", + "default": "any" + } + ], + "param": [ + { + "name": "underlyingSource", + "optional": true, + "overrideType": "UnderlyingSource" + }, + { + "name": "strategy", + "optional": true, + "overrideType": "QueuingStrategy" + } + ], + "overrideType": "ReadableStream" + } + }, + "force-references": [ + { + "type": "UnderlyingSource" + }, + { + "type": "UnderlyingByteSource" + }, + { + "type": "UnderlyingDefaultSource" + }, + { + "type": "QueuingStrategy" + } + ] + }, + "methods": { + "method": { + "getReader": { + "additionalSignatures": [ + "getReader(options: { mode: \"byob\" }): ReadableStreamBYOBReader", + "getReader(): ReadableStreamDefaultReader" + ], + "signature": { + "0": { + "overrideType": "ReadableStreamReader" + } + } + }, + "pipeThrough": { + "signature": { + "0": { + "typeParameters": [ + { + "name": "T" + } + ], + "param": [ + { + "name": "transform", + "overrideType": "ReadableWritablePair" + } + ], + "overrideType": "ReadableStream" + } + } + }, + "pipeTo": { + "signature": { + "0": { + "param": [ + { + "name": "destination", + "overrideType": "WritableStream" + } + ] + } + } + }, + "tee": { + "signature": { + "0": { + "overrideType": "[ReadableStream, ReadableStream]" + } + } + } + } + }, + "iterator": { + "type": { + "0": { + "overrideType": "R" + } + } + } + }, + "ReadableStreamBYOBReader": { + "constructor": { + "signature": { + "0": { + "param": [ + { + "name": "stream", + "overrideType": "ReadableStream" + } + ] + } + } + }, + "methods": { + "method": { + "read": { + "signature": { + "0": { + "typeParameters": [ + { + "name": "T", + "extends": "ArrayBufferView" + } + ], + "param": [ + { + "name": "view", + "overrideType": "T" + } + ], + "overrideType": "Promise>" + } + } + } + } + } + }, + "ReadableStreamDefaultReader": { + "typeParameters": [ + { + "name": "R", + "default": "any" + } + ], + "constructor": { + "signature": { + "0": { + "typeParameters": [ + { + "name": "R", + "default": "any" + } + ], + "param": [ + { + "name": "stream", + "overrideType": "ReadableStream" + } + ], + "overrideType": "ReadableStreamDefaultReader" + } + } + }, + "methods": { + "method": { + "read": { + "signature": { + "0": { + "overrideType": "Promise>" + } + } + } + } + } + }, + "ReadableStreamDefaultController": { + "typeParameters": [ + { + "name": "R", + "default": "any" + } + ], + "methods": { + "method": { + "enqueue": { + "signature": { + "0": { + "param": [ + { + "name": "chunk", + "overrideType": "R" + } + ] + } + } + } + } + } + }, + "WritableStream": { + "constructor": { + "signature": { + "0": { + "typeParameters": [ + { + "name": "W", + "default": "any" + } + ], + "param": [ + { + "name": "underlyingSink", + "overrideType": "UnderlyingSink" + }, + { + "name": "strategy", + "overrideType": "QueuingStrategy" + } + ], + "overrideType": "WritableStream" + } + }, + "force-references": [ + { + "type": "UnderlyingSink" + }, + { + "type": "QueuingStrategy" + } + ] + }, + "typeParameters": [ + { + "name": "W", + "default": "any" + } + ], + "methods": { + "method": { + "getWriter": { + "signature": { + "0": { + "overrideType": "WritableStreamDefaultWriter" + } + } + } + } + } + }, + "WritableStreamDefaultWriter": { + "typeParameters": [ + { + "name": "W", + "default": "any" + } + ], + "constructor": { + "signature": { + "0": { + "typeParameters": [ + { + "name": "W", + "default": "any" + } + ], + "param": [ + { + "name": "stream", + "overrideType": "WritableStream" + } + ], + "overrideType": "WritableStreamDefaultWriter" + } + } + }, + "methods": { + "method": { + "write": { + "signature": { + "0": { + "param": [ + { + "name": "chunk", + "overrideType": "W" + } + ] + } + } + } + } + } + }, + "TransformStream": { + "typeParameters": [ + { + "name": "I", + "default": "any" + }, + { + "name": "O", + "default": "any" + } + ], + "properties": { + "property": { + "readable": { + "overrideType": "ReadableStream" + }, + "writable": { + "overrideType": "WritableStream" + } + } + }, + "constructor": { + "signature": { + "0": { + "typeParameters": [ + { + "name": "I", + "default": "any" + }, + { + "name": "O", + "default": "any" + } + ], + "param": [ + { + "name": "transformer", + "overrideType": "Transformer" + }, + { + "name": "writableStrategy", + "overrideType": "QueuingStrategy" + }, + { + "name": "readableStrategy", + "overrideType": "QueuingStrategy" + } + ], + "overrideType": "TransformStream" + } + }, + "force-references": [ + { + "type": "Transformer" + }, + { + "type": "QueuingStrategy" + } + ] + } + }, + "TransformStreamDefaultController": { + "typeParameters": [ + { + "name": "O", + "default": "any" + } + ], + "methods": { + "method": { + "enqueue": { + "signature": { + "0": { + "param": [ + { + "name": "chunk", + "overrideType": "O" + } + ] + } + } + } + } + } + }, + "ByteLengthQueuingStrategy": { + "extends": "QueuingStrategy", + "properties": { + "property": { + "size": { + "name": "size", + "overrideType": [ + "QueuingStrategySize" + ] + } + } + } + }, + "CountQueuingStrategy": { + "extends": "QueuingStrategy", + "properties": { + "property": { + "size": { + "name": "size", + "overrideType": [ + "QueuingStrategySize" + ] + } + } + } + }, + "CompressionStream": { + "properties": { + "property": { + "readable": { + "name": "readable", + "readonly": true, + "overrideType": "ReadableStream" + }, + "writable": { + "name": "writable", + "readonly": true, + "overrideType": "WritableStream" + } + } + } + }, + "DecompressionStream": { + "properties": { + "property": { + "readable": { + "name": "readable", + "readonly": true, + "overrideType": "ReadableStream" + }, + "writable": { + "name": "writable", + "readonly": true, + "overrideType": "WritableStream" + } + } + } + }, + "TextDecoderStream": { + "properties": { + "property": { + "readable": { + "name": "readable", + "readonly": true, + "overrideType": "ReadableStream" + }, + "writable": { + "name": "writable", + "readonly": true, + "overrideType": "WritableStream" + } + } + } + }, + "TextEncoderStream": { + "properties": { + "property": { + "readable": { + "name": "readable", + "readonly": true, + "overrideType": "ReadableStream" + }, + "writable": { + "name": "writable", + "readonly": true, + "overrideType": "WritableStream" + } + } + } + }, + "Permissions": { + "methods": { + "method": { + "query": { + "signature": { + "0": { + "param": [ + { + "name": "permissionDesc", + "type": "PermissionDescriptor" + } + ] + } + } + } + } + } + }, + "ExtendableEvent": { + "methods": { + "method": { + "waitUntil": { + "signature": { + "0": { + "param": [ + { + "name": "f", + "overrideType": "Promise" + } + ] + } + } + } + } + } + }, + "EventTarget": { + "methods": { + "method": { + "addEventListener": { + "signature": { + "0": { + "param": [ + { + "name": "callback", + "overrideType": "EventListenerOrEventListenerObject" + } + ] + } + } + }, + "removeEventListener": { + "signature": { + "0": { + "param": [ + { + "name": "callback", + "overrideType": "EventListenerOrEventListenerObject" + } + ] + } + } + } + } + } + }, + "WorkerGlobalScope": { + "properties": { + "property": { + "self": { + "overrideType": "WorkerGlobalScope & typeof globalThis" + } + } + }, + "events": { + "event": [ + { + "name": "error", + "type": "ErrorEvent" + } + ] + } + }, + "InstallEvent": { + // https://github.com/mdn/browser-compat-data/issues/22591 + "exposed": "" + }, + "Instance": { + "constructor": { + "signature": { + "0": { + "param": [ + { + "name": "importObject", + "type": "Imports" + } + ] + } + } + }, + "properties": { + "property": { + "exports": { + "type": "Exports" + } + } + } + }, + "MediaKeySession": { + "events": { + "event": [ + { + "name": "message", + "type": "MediaKeyMessageEvent" + } + ] + } + }, + "MessageEvent": { + "properties": { + "property": { + "data": { + "overrideType": "T" + } + } + }, + "typeParameters": [ + { + "name": "T", + "default": "any" + } + ], + "constructor": { + "signature": { + "0": { + "typeParameters": [ + { + "name": "T" + } + ], + "param": [ + { + "name": "eventInitDict", + "overrideType": "MessageEventInit" + } + ], + "overrideType": "MessageEvent" + } + } + } + }, + "MIDIAccess": { + "exposed": "Window", // Window only on Gecko/Blink as of 2024-07 + "transferable": false // Not transferable on Gecko/Blink as of 2024-07 + }, + "MIDIConnectionEvent": { + "exposed": "Window" // Window only on Gecko/Blink as of 2024-07 + }, + "MIDIInput": { + "exposed": "Window", // Window only on Gecko/Blink as of 2024-07 + "events": { + "event": [ + { + "name": "midimessage", + "type": "MIDIMessageEvent" + } + ] + } + }, + "MIDIInputMap": { + "exposed": "Window" // Window only on Gecko/Blink as of 2024-07 + }, + "MIDIMessageEvent": { + "exposed": "Window" // Window only on Gecko/Blink as of 2024-07 + }, + "MIDIOutput": { + "exposed": "Window" // Window only on Gecko/Blink as of 2024-07 + }, + "MIDIOutputMap": { + "exposed": "Window" // Window only on Gecko/Blink as of 2024-07 + }, + "MIDIPort": { + "exposed": "Window", // Window only on Gecko/Blink as of 2024-07 + "events": { + "event": [ + { + "name": "statechange", + "type": "MIDIConnectionEvent" + } + ] + } + }, + "Clients": { + "methods": { + "method": { + "get": { + "signature": { + "0": { + "overrideType": "Promise" + } + } + }, + "matchAll": { + "signature": { + "0": { + "typeParameters": [ + { + "name": "T", + "extends": "ClientQueryOptions" + } + ], + "param": [ + { + "name": "options", + "overrideType": "T" + } + ], + "overrideType": "Promise>" + } + } + } + } + } + }, + "CSSFontFaceRule": { + "properties": { + "property": { + "style": { + // CSS Fonts Level 4 now says CSSFontFaceDescriptors but nobody implements it as of 2024-04 + // https://github.com/w3c/csswg-drafts/pull/9686 + "type": "CSSStyleDeclaration" + } + } + } + }, + "CSSKeyframeRule": { + "properties": { + "property": { + "style": { + // CSS Fonts Level 4 now says CSSStyleProperties but nobody implements it as of 2024-04 + // https://github.com/w3c/csswg-drafts/pull/9686 + "type": "CSSStyleDeclaration" + } + } + } + }, + "CSSPageRule": { + "properties": { + "property": { + "style": { + // CSS Fonts Level 4 now says CSSPageDescriptors but nobody implements it as of 2024-04 + // https://github.com/w3c/csswg-drafts/pull/9686 + "type": "CSSStyleDeclaration" + } + } + } + }, + "CSSNestedDeclarations": { + "properties": { + "property": { + "style": { + // CSS Fonts Level 4 now says CSSPageDescriptors but nobody implements it as of 2024-04 + // https://github.com/w3c/csswg-drafts/pull/9686 + "type": "CSSStyleDeclaration" + } + } + } + }, + "CSSStyleDeclaration": { + "properties": { + "property": { + "cssFloat": { + // CSS Fonts Level 4 now puts this in CSSStyleProperties but nobody implements it as of 2024-04 + // https://github.com/w3c/csswg-drafts/pull/9686 + "name": "cssFloat", + "type": "CSSOMString", + "mdnUrl": "https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/cssFloat" + }, + "webkitLineClamp": { + // The corresponding standardized property is not supported by anyone as of 2024-10. + "deprecated": false + } + } + } + }, + "CSSStyleRule": { + "properties": { + "property": { + "style": { + // CSS Fonts Level 4 now says CSSStyleProperties but nobody implements it as of 2024-04 + // https://github.com/w3c/csswg-drafts/pull/9686 + "type": "CSSStyleDeclaration" + } + } + } + }, + "ContactAddress": { + "name": "PaymentAddress" + }, + "HTMLMediaElement": { + "properties": { + "property": { + "preload": { + "overrideType": "\"none\" | \"metadata\" | \"auto\" | \"\"" + } + } + } + }, + "Global": { + "name": "Global", + "typeParameters": [ + { + "name": "T", + "extends": "ValueType", + "default": "ValueType" + } + ], + "constructor": { + "overrideSignatures": [ + "new(descriptor: GlobalDescriptor, v?: ValueTypeMap[T]): Global" + ] + }, + "properties": { + "property": { + "value": { + "overrideType": "ValueTypeMap[T]" + } + } + }, + "methods": { + "method": { + "valueOf": { + "overrideSignatures": [ + "valueOf(): ValueTypeMap[T]" + ] + } + } + } + }, - // https://github.com/w3c/media-source/pull/282, but not supported anywhere yet - "MediaSource": { - "exposed": "Window" - }, + // https://github.com/w3c/media-source/pull/282, but not supported anywhere yet + "MediaSource": { + "exposed": "Window" + }, - // Payment Request added shippingAddress with a different type - // https://github.com/w3c/payment-request/pull/996 - "PaymentRequest": { - "properties": { - "property": { - "shippingAddress": { - "type": "PaymentAddress" - } - } - } - }, - "PaymentResponse": { - "properties": { - "property": { - "shippingAddress": { - "type": "PaymentAddress" - } - } - } - }, + // Payment Request added shippingAddress with a different type + // https://github.com/w3c/payment-request/pull/996 + "PaymentRequest": { + "properties": { + "property": { + "shippingAddress": { + "type": "PaymentAddress" + } + } + } + }, + "PaymentResponse": { + "properties": { + "property": { + "shippingAddress": { + "type": "PaymentAddress" + } + } + } + }, - "SourceBuffer": { - "exposed": "Window" - }, - "SourceBufferList": { - "exposed": "Window" - }, - "StylePropertyMapReadOnly": { - "methods": { - "method": { - "get": { - // https://github.com/w3c/css-houdini-drafts/pull/1087 - "signature": { - "0": { - "overrideType": "undefined | CSSStyleValue" - } - } - } - } - } - }, - "HTMLImageElement": { - "properties": { - "property": { - "fetchPriority": { - "overrideType": "\"high\" | \"low\" | \"auto\"" - } - } - } - }, - "HTMLLinkElement": { - "properties": { - "property": { - "fetchPriority": { - "overrideType": "\"high\" | \"low\" | \"auto\"" - } - } - } - }, - "HTMLScriptElement": { - "properties": { - "property": { - "fetchPriority": { - "overrideType": "\"high\" | \"low\" | \"auto\"" - } - } - } - }, - "LockManager": { - "methods": { - "method": { - "request": { - "typeParameters": { - "name": "T" - }, - "signature": { - "0": { - "typeParameters": [ - { - "name": "T" - } - ], - "param": [ - { - "name": "callback", - "overrideType": "LockGrantedCallback" - } - ], - "overrideType": "Promise" - }, - "1": { - "typeParameters": [ - { - "name": "T" - } - ], - "param": [ - { - "name": "callback", - "overrideType": "LockGrantedCallback" - } - ], - "overrideType": "Promise" - } - } - } - } + "SourceBuffer": { + "exposed": "Window" + }, + "SourceBufferList": { + "exposed": "Window" + }, + "StylePropertyMapReadOnly": { + "methods": { + "method": { + "get": { + // https://github.com/w3c/css-houdini-drafts/pull/1087 + "signature": { + "0": { + "overrideType": "undefined | CSSStyleValue" + } + } + } + } + } + }, + "HTMLImageElement": { + "properties": { + "property": { + "fetchPriority": { + "overrideType": "\"high\" | \"low\" | \"auto\"" + } + } + } + }, + "HTMLLinkElement": { + "properties": { + "property": { + "fetchPriority": { + "overrideType": "\"high\" | \"low\" | \"auto\"" + } + } + } + }, + "HTMLScriptElement": { + "properties": { + "property": { + "fetchPriority": { + "overrideType": "\"high\" | \"low\" | \"auto\"" + } + } + } + }, + "LockManager": { + "methods": { + "method": { + "request": { + "typeParameters": { + "name": "T" + }, + "signature": { + "0": { + "typeParameters": [ + { + "name": "T" + } + ], + "param": [ + { + "name": "callback", + "overrideType": "LockGrantedCallback" + } + ], + "overrideType": "Promise" + }, + "1": { + "typeParameters": [ + { + "name": "T" + } + ], + "param": [ + { + "name": "callback", + "overrideType": "LockGrantedCallback" + } + ], + "overrideType": "Promise" + } + } + } + } + } + } + } + }, + "dictionaries": { + "dictionary": { + "FontFaceDescriptors": { + "members": { + "member": { + "display":{ + "type": "FontDisplay" } + } } - } - }, - "dictionaries": { - "dictionary": { - "FontFaceDescriptors": { + }, + // https://github.com/microsoft/TypeScript/issues/46036 + "CryptoKeyPair": { "members": { - "member": { - "display":{ - "type": "FontDisplay" + "member": { + "privateKey": { + "required": true + }, + "publicKey": { + "required": true + } } - } } - }, - // https://github.com/microsoft/TypeScript/issues/46036 - "CryptoKeyPair": { - "members": { - "member": { - "privateKey": { - "required": true - }, - "publicKey": { - "required": true - } - } - } - }, - "StructuredSerializeOptions": { - "members": { - "member": { - "transfer": { - "overrideType": "Transferable[]" - } - } - } - }, - "MessageEventInit": { - "members": { - "member": { - "data": { - "name": "data", - "overrideType": "T" - } - } - }, - "typeParameters": [ - { - "name": "T", - "default": "any" - } - ] - }, - "CustomEventInit": { - "members": { - "member": { - "detail": { - "name": "detail", - "overrideType": "T" - } - } - }, - "typeParameters": [ - { - "name": "T", - "default": "any" - } - ] - }, - "ClientQueryOptions": { - "members": { - "member": { - "type": { - "name": "type", - "overrideType": "ClientTypes" - } - } - } - }, - "AuthenticatorSelectionCriteria": { - "members": { - "member": { - "authenticatorAttachment": { - "type": "AuthenticatorAttachment" - }, - "residentKey": { - "type": "ResidentKeyRequirement" - }, - "userVerification": { - "type": "UserVerificationRequirement" - } - } - } - }, - "BaseKeyframe": { - "name": "Keyframe", - "overrideIndexSignatures": [ - "[property: string]: string | number | null | undefined" - ] - }, - "BasePropertyIndexedKeyframe": { - "name": "PropertyIndexedKeyframes", - "overrideIndexSignatures": [ - "[property: string]: string | string[] | number | null | (number | null)[] | undefined" - ] - }, - "BaseComputedKeyframe": { - "name": "ComputedKeyframe", - "members": { - "member": { - "offset": { - "required": true - }, - "computedOffset": { - "required": true - }, - "easing": { - "required": true - }, - "composite": { - "required": true - } - } - }, - "overrideIndexSignatures": [ - "[property: string]: string | number | null | undefined" - ] - }, - "PermissionDescriptor": { - "members": { - "member": { - "name": { - "type": "PermissionName" - } - } - } - }, - "PromiseRejectionEventInit": { - "members": { - "member": { - "promise": { - "overrideType": "Promise" - } - } - } - }, - "PublicKeyCredentialCreationOptions": { - "members": { - "member": { - "attestation": { - "type": "AttestationConveyancePreference" - } - } - } - }, - "PublicKeyCredentialDescriptor": { - "members": { - "member": { - "type": { - "type": "PublicKeyCredentialType" - }, - "transports": { - "subtype": { - "type": "AuthenticatorTransport" - } - } - } - } - }, - "PublicKeyCredentialParameters": { - "members": { - "member": { - "type": { - "type": "PublicKeyCredentialType" - } - } - } - }, - "PublicKeyCredentialRequestOptions": { - "members": { - "member": { - "userVerification": { - "type": "UserVerificationRequirement" - } - } - } - }, - "QueuingStrategy": { - "typeParameters": [ - { - "name": "T", - "default": "any" - } - ], - "members": { - "member": { - "size": { - "overrideType": "QueuingStrategySize" - } - } - } - }, - "ReadableWritablePair": { - "typeParameters": [ - { - "name": "R", - "default": "any" - }, - { - "name": "W", - "default": "any" - } - ], - "members": { - "member": { - "readable": { - "overrideType": "ReadableStream" - }, - "writable": { - "overrideType": "WritableStream" - } - } - } - }, - "RequestInit": { - "members": { - "member": { - "window": { - "overrideType": "null" - } - } - } - }, - // TextEncoderEncodeIntoResult is used only for return type, always with all fields defined - "TextEncoderEncodeIntoResult": { - "members": { - "member": { - "read": { - "required": true - }, - "written": { - "required": true - } - } - } - }, - "UnderlyingSource": { - "typeParameters": [ - { - "name": "R", - "default": "any" - } - ], - "members": { - "member": { - "start": { - "overrideType": "UnderlyingSourceStartCallback" - }, - "pull": { - "overrideType": "UnderlyingSourcePullCallback" - } - } - } - }, - "UIEventInit": { - "members": { - "member": { - "which": { - "deprecated": true - } - } - } - }, - "UnderlyingSink": { - "typeParameters": [ - { - "name": "W", - "default": "any" - } - ], - "members": { - "member": { - "write": { - "overrideType": "UnderlyingSinkWriteCallback" - }, - "type": { - "overrideType": "undefined" - } - } - } - }, - "TokenBinding": { - "members": { - "member": { - "status": { - "type": "TokenBindingStatus" - } - } - } - }, - "Transformer": { - "typeParameters": [ - { - "name": "I", - "default": "any" - }, - { - "name": "O", - "default": "any" - } - ], - "members": { - "member": { - "start": { - "overrideType": "TransformerStartCallback" - }, - "transform": { - "overrideType": "TransformerTransformCallback" - }, - "flush": { - "overrideType": "TransformerFlushCallback" - }, - "readableType": { - "overrideType": "undefined" - }, - "writableType": { - "overrideType": "undefined" - } - } - } - }, - "ModuleExportDescriptor": { - "legacyNamespace": "WebAssembly" - }, - "ModuleImportDescriptor": { - "legacyNamespace": "WebAssembly" - }, - "MemoryDescriptor": { - "legacyNamespace": "WebAssembly" - }, - "TableDescriptor": { - "legacyNamespace": "WebAssembly" - }, - "GlobalDescriptor": { - "legacyNamespace": "WebAssembly", - "typeParameters": [ - { - "name": "T", - "extends": "ValueType", - "default": "ValueType" - } - ], - "members": { - "member": { - "value": { - "overrideType": "T" - } - } - } - }, - "WebAssemblyInstantiatedSource": { - "legacyNamespace": "WebAssembly" - } - } - }, - "typedefs": { - "typedef": [ - { - "overrideType": "ReadableStreamDefaultController | ReadableByteStreamController", - "name": "ReadableStreamController", - "typeParameters": [ - { - "name": "T" - } - ] - }, - { - "name": "ReadableStreamReader", - "typeParameters": [ - { - "name": "T" - } - ], - "type": [ - { - "type": "ReadableStreamDefaultReader" - }, - { - "type": "ReadableStreamBYOBReader" - } - ], - "overrideType": "ReadableStreamDefaultReader | ReadableStreamBYOBReader" - }, - { - "name": "AllowSharedBufferSource", - // No SharedArrayBuffer in ES5, oh no. - "overrideType": "ArrayBuffer | ArrayBufferView" - } - ] - }, - "namespaces": [ - { - "name": "console", - "methods": { - "method": { - "timeStamp": { - "name": "timeStamp", - "overrideSignatures": [ - "timeStamp(label?: string): void" - ] - } - } - } - }, - { - "name": "WebAssembly", - "methods": { - "method": { - "instantiate": { - "signature": { - "0": { - "param": [ - { - "name": "importObject", - "type": "Imports" - } - ] - }, - "1": { - "param": [ - { - "name": "importObject", - "type": "Imports" - } - ] - } - } - }, - "instantiateStreaming": { - "signature": { - "0": { - "param": [ - { - "name": "importObject", - "type": "Imports" - } - ] - } - } - } - } - } - }, - { - "name": "CSS", - "methods": { - "method": { - // `in` is a keyword and needs a special emit, which will be done in a separate PR - // Not in removedTypes as removals in arrays are not well supported - // https://github.com/microsoft/TypeScript-DOM-lib-generator/issues/1515 - "in": { - "exposed": "" - } - } - } - } - ] -} + }, + "StructuredSerializeOptions": { + "members": { + "member": { + "transfer": { + "overrideType": "Transferable[]" + } + } + } + }, + "MessageEventInit": { + "members": { + "member": { + "data": { + "name": "data", + "overrideType": "T" + } + } + }, + "typeParameters": [ + { + "name": "T", + "default": "any" + } + ] + }, + "CustomEventInit": { + "members": { + "member": { + "detail": { + "name": "detail", + "overrideType": "T" + } + } + }, + "typeParameters": [ + { + "name": "T", + "default": "any" + } + ] + }, + "ClientQueryOptions": { + "members": { + "member": { + "type": { + "name": "type", + "overrideType": "ClientTypes" + } + } + } + }, + "AuthenticatorSelectionCriteria": { + "members": { + "member": { + "authenticatorAttachment": { + "type": "AuthenticatorAttachment" + }, + "residentKey": { + "type": "ResidentKeyRequirement" + }, + "userVerification": { + "type": "UserVerificationRequirement" + } + } + } + }, + "BaseKeyframe": { + "name": "Keyframe", + "overrideIndexSignatures": [ + "[property: string]: string | number | null | undefined" + ] + }, + "BasePropertyIndexedKeyframe": { + "name": "PropertyIndexedKeyframes", + "overrideIndexSignatures": [ + "[property: string]: string | string[] | number | null | (number | null)[] | undefined" + ] + }, + "BaseComputedKeyframe": { + "name": "ComputedKeyframe", + "members": { + "member": { + "offset": { + "required": true + }, + "computedOffset": { + "required": true + }, + "easing": { + "required": true + }, + "composite": { + "required": true + } + } + }, + "overrideIndexSignatures": [ + "[property: string]: string | number | null | undefined" + ] + }, + "PermissionDescriptor": { + "members": { + "member": { + "name": { + "type": "PermissionName" + } + } + } + }, + "PromiseRejectionEventInit": { + "members": { + "member": { + "promise": { + "overrideType": "Promise" + } + } + } + }, + "PublicKeyCredentialCreationOptions": { + "members": { + "member": { + "attestation": { + "type": "AttestationConveyancePreference" + } + } + } + }, + "PublicKeyCredentialDescriptor": { + "members": { + "member": { + "type": { + "type": "PublicKeyCredentialType" + }, + "transports": { + "subtype": { + "type": "AuthenticatorTransport" + } + } + } + } + }, + "PublicKeyCredentialParameters": { + "members": { + "member": { + "type": { + "type": "PublicKeyCredentialType" + } + } + } + }, + "PublicKeyCredentialRequestOptions": { + "members": { + "member": { + "userVerification": { + "type": "UserVerificationRequirement" + } + } + } + }, + "QueuingStrategy": { + "typeParameters": [ + { + "name": "T", + "default": "any" + } + ], + "members": { + "member": { + "size": { + "overrideType": "QueuingStrategySize" + } + } + } + }, + "ReadableWritablePair": { + "typeParameters": [ + { + "name": "R", + "default": "any" + }, + { + "name": "W", + "default": "any" + } + ], + "members": { + "member": { + "readable": { + "overrideType": "ReadableStream" + }, + "writable": { + "overrideType": "WritableStream" + } + } + } + }, + "RequestInit": { + "members": { + "member": { + "window": { + "overrideType": "null" + } + } + } + }, + // TextEncoderEncodeIntoResult is used only for return type, always with all fields defined + "TextEncoderEncodeIntoResult": { + "members": { + "member": { + "read": { + "required": true + }, + "written": { + "required": true + } + } + } + }, + "UnderlyingSource": { + "typeParameters": [ + { + "name": "R", + "default": "any" + } + ], + "members": { + "member": { + "start": { + "overrideType": "UnderlyingSourceStartCallback" + }, + "pull": { + "overrideType": "UnderlyingSourcePullCallback" + } + } + } + }, + "UIEventInit": { + "members": { + "member": { + "which": { + "deprecated": true + } + } + } + }, + "UnderlyingSink": { + "typeParameters": [ + { + "name": "W", + "default": "any" + } + ], + "members": { + "member": { + "write": { + "overrideType": "UnderlyingSinkWriteCallback" + }, + "type": { + "overrideType": "undefined" + } + } + } + }, + "TokenBinding": { + "members": { + "member": { + "status": { + "type": "TokenBindingStatus" + } + } + } + }, + "Transformer": { + "typeParameters": [ + { + "name": "I", + "default": "any" + }, + { + "name": "O", + "default": "any" + } + ], + "members": { + "member": { + "start": { + "overrideType": "TransformerStartCallback" + }, + "transform": { + "overrideType": "TransformerTransformCallback" + }, + "flush": { + "overrideType": "TransformerFlushCallback" + }, + "readableType": { + "overrideType": "undefined" + }, + "writableType": { + "overrideType": "undefined" + } + } + } + }, + "ModuleExportDescriptor": { + "legacyNamespace": "WebAssembly" + }, + "ModuleImportDescriptor": { + "legacyNamespace": "WebAssembly" + }, + "MemoryDescriptor": { + "legacyNamespace": "WebAssembly" + }, + "TableDescriptor": { + "legacyNamespace": "WebAssembly" + }, + "GlobalDescriptor": { + "legacyNamespace": "WebAssembly", + "typeParameters": [ + { + "name": "T", + "extends": "ValueType", + "default": "ValueType" + } + ], + "members": { + "member": { + "value": { + "overrideType": "T" + } + } + } + }, + "WebAssemblyInstantiatedSource": { + "legacyNamespace": "WebAssembly" + } + } + }, + "typedefs": { + "typedef": [ + { + "overrideType": "ReadableStreamDefaultController | ReadableByteStreamController", + "name": "ReadableStreamController", + "typeParameters": [ + { + "name": "T" + } + ] + }, + { + "name": "ReadableStreamReader", + "typeParameters": [ + { + "name": "T" + } + ], + "type": [ + { + "type": "ReadableStreamDefaultReader" + }, + { + "type": "ReadableStreamBYOBReader" + } + ], + "overrideType": "ReadableStreamDefaultReader | ReadableStreamBYOBReader" + }, + { + "name": "AllowSharedBufferSource", + // No SharedArrayBuffer in ES5, oh no. + "overrideType": "ArrayBuffer | ArrayBufferView" + } + ] + }, + "namespaces": [ + { + "name": "console", + "methods": { + "method": { + "timeStamp": { + "name": "timeStamp", + "overrideSignatures": [ + "timeStamp(label?: string): void" + ] + } + } + } + }, + { + "name": "WebAssembly", + "methods": { + "method": { + "instantiate": { + "signature": { + "0": { + "param": [ + { + "name": "importObject", + "type": "Imports" + } + ] + }, + "1": { + "param": [ + { + "name": "importObject", + "type": "Imports" + } + ] + } + } + }, + "instantiateStreaming": { + "signature": { + "0": { + "param": [ + { + "name": "importObject", + "type": "Imports" + } + ] + } + } + } + } + } + }, + { + "name": "CSS", + "methods": { + "method": { + // `in` is a keyword and needs a special emit, which will be done in a separate PR + // Not in removedTypes as removals in arrays are not well supported + // https://github.com/microsoft/TypeScript-DOM-lib-generator/issues/1515 + "in": { + "exposed": "" + } + } + } + } + ] +} \ No newline at end of file diff --git a/inputfiles/removedTypes.jsonc b/inputfiles/removedTypes.jsonc index 2cceaf507..840150ef9 100644 --- a/inputfiles/removedTypes.jsonc +++ b/inputfiles/removedTypes.jsonc @@ -1,874 +1,874 @@ { - "callbackFunctions": { - "callbackFunction": { - "Function": null, - "PerformanceObserverCallback": { - "signature": { - "0": { - "param": ["options"] - } - } - } - } - }, - "enums": { - "enum": { - "AuthenticatorTransport": { - "value": ["smart-card"] // WebKit only as of 2023-05 - }, - "ConnectionType": { - "value": ["wimax"] - }, - "GPUBlendFactor": { - "value": [ - "one-minus-src1", // Blink only as of 2024-11 - "one-minus-src1-alpha", // Blink only as of 2024-11 - "src1", // Blink only as of 2024-11 - "src1-alpha" // Blink only as of 2024-11 - ] - }, - "GPUFeatureName": { - "value": [ - "clip-distances", // Blink only as of 2024-11 - "dual-source-blending", // Blink only as of 2024-11 - "float32-blendable", // Blink only as of 2024-11 - "texture-compression-astc-sliced-3d", // No implementation as of 2024-11 - "texture-compression-bc-sliced-3d" // No implementation as of 2024-11 - ] - }, - "GPUVertexFormat": { - "value": [ - "float16", // Blink only as of 2024-11 - "sint16", // Blink only as of 2024-11 - "sint8", // Blink only as of 2024-11 - "snorm16", // Blink only as of 2024-11 - "snorm8", // Blink only as of 2024-11 - "uint16", // Blink only as of 2024-11 - "uint8", // Blink only as of 2024-11 - "unorm16", // Blink only as of 2024-11 - "unorm8", // Blink only as of 2024-11 - "unorm8x4-bgra" // Blink only as of 2024-11 - ] - }, - "MediaSessionAction": { - "value": [ - "enterpictureinpicture", // Blink only as of 2024-07 - "hangup", // Blink only as of 2024-07 - "nextslide", // Blink only as of as of 2024-07 - "previousslide", // Blink only as of as of 2024-07 - "togglecamera", // Blink only as of 2024-07 - "togglemicrophone", // Blink only as of 2024-07 - "togglescreenshare", // No implementation as of 2024-07 - "voiceactivity" // No implementation as of 2024-07 - ] - }, - "RequestDestination": { - "value": [ - "json" // No implementation as of 2023-11 - ] - }, - "ValueType": null, - "VideoColorPrimaries": { - "value": [ - "bt2020", // Blink only as of 2022-10 - "smpte432" // Blink only as of 2022-10 - ] - }, - "VideoMatrixCoefficients": { - "value": [ - "bt2020-ncl" // Blink only as of 2022-10 - ] - }, - "VideoPixelFormat": { - "value": [ - // All no implementation as of 2024-03 - "I420AP10", - "I420AP12", - "I420P10", - "I420P12", - "I422A", - "I422AP10", - "I422AP12", - "I422P10", - "I422P12", - "I444A", - "I444AP10", - "I444AP12", - "I444P10", - "I444P12" - ] - }, - "VideoTransferCharacteristics": { - "value": [ - "hlg", // Blink only as of 2022-10 - "linear", // Blink only as of 2022-10 - "pq" // Blink only as of 2022-10 - ] - } - } - }, - "interfaces": { - "interface": { - "Clipboard": { - "methods": { - "method": { - "read": { - "signature": { - "0": { - "param": ["formats"] // Blink-only as of 2023-11 - } - } - } - } - } - }, - "CSSRule": { - "constants": { - "constant": { - "MARGIN_RULE": null // WebKit only as of 2023-10 - } - } - }, - "Document": { - "methods": { - "method": { - // Manually moved to DocumentOrShadowRoot - // See https://github.com/w3c/csswg-drafts/issues/5886 and https://github.com/w3c/csswg-drafts/issues/556 - "elementFromPoint": null, - "elementsFromPoint": null - } - } - }, - "HTMLElement": { - "methods": { - "method": { - "showPopover": { - "signature": { - "0": { - "param": ["options"] // Blink only as of 2024-11 - } - } - } - } - } - }, - "IntersectionObserverEntry": { - "constructor": null // WebKit-only as of 2024-07 - }, - "OffscreenCanvasRenderingContext2D": { - "implements": ["CanvasSettings"] // Blink only as of 2025-01 - }, - "PaymentResponse": { - "methods": { - "method": { - "complete": { - "signature": { - "0": { - "param": ["details"] // WebKit-only as of 2023-11 - } - } - } - } - } - }, - "ReadableStreamBYOBReader": { - "methods": { - "method": { - "read": { - "signature": { - "0": { - "param": ["options"] // No implementations as of 2023-11 - } - } - } - } - } - }, - "RTCEncodedAudioFrame": { - "constructor": null // Blink experimental only as of 2024-05 - }, - "RTCEncodedVideoFrame": { - "constructor": null // Blink experimental only as of 2024-05 - }, - "SVGFEGaussianBlurElement": { - "constants": { - "constant": { - "SVG_EDGEMODE_DUPLICATE": null, - "SVG_EDGEMODE_NONE": null, - "SVG_EDGEMODE_UNKNOWN": null, - "SVG_EDGEMODE_WRAP": null - } - } - }, - "WebGLBuffer": { - "extends": null - }, - "WebGLFramebuffer": { - "extends": null - }, - "WebGLProgram": { - "extends": null - }, - "WebGLQuery": { - "extends": null - }, - "WebGLRenderbuffer": { - "extends": null - }, - "WebGLSampler": { - "extends": null - }, - "WebGLShader": { - "extends": null - }, - "WebGLSync": { - "extends": null - }, - "WebGLTexture": { - "extends": null - }, - "WebGLTransformFeedback": { - "extends": null - }, - "WebGLVertexArrayObject": { - "extends": null - }, - "WebGLVertexArrayObjectOES": { - "extends": null - } - } - }, - "dictionaries": { - "dictionary": { - "AudioContextOptions": { - "members": { - "member": { - "renderSizeHint": null, // No implementation as of 2023-10 - "sinkId": null // Blink only as of 2023-10 - } - } - }, - "AudioEncoderConfig": { - "members": { - "member": { - "aac": null, // Blink only as of 2024-09 - "flac": null // Blink only as of 2024-09 - } - } - }, - "AuthenticationExtensionsClientInputs": { - "members": { - "member": { - // only `appid`, `credProps`, and `hmacCreateSecret` are implemented by 2+ engines, everything else is Blink only as of 2022-10. - // https://searchfox.org/mozilla-central/source/dom/webidl/WebAuthentication.webidl - // https://searchfox.org/wubkat/source/Source/WebCore/Modules/webauthn/AuthenticationExtensionsClientInputs.idl - // https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_inputs.idl - "appidExclude": null, - "credBlob": null, - "credentialProtectionPolicy": null, - "enforceCredentialProtectionPolicy": null, - "getCredBlob": null, - "hmacGetSecret": null, // No implementation as of 2023-11 - "largeBlob": null, - "payment": null - } - } - }, - "AuthenticationExtensionsClientOutputs": { - "members": { - "member": { - // (same as *Inputs) - "appidExclude": null, // No implementation as of 2023-11 - "hmacGetSecret": null, // No implementation as of 2023-11 - "largeBlob": null - } - } - }, - "CanvasRenderingContext2DSettings": { - "members": { - "member": { - "colorType": null // No implementation as of 2025-02 - } - } - }, - "CredentialCreationOptions": { - "members": { - "member": { - "federated": null, // Blink only as of 2024-06 - "password": null, // Blink only as of 2024-06 - "mediation": null // WebKit only as of 2024-06 - } - } - }, - "CookieListItem": { - "members": { - "member": { - "domain": null, // Blink only as of 2025-02 - "path": null, // Blink only as of 2025-02 - "expires": null, // Blink only as of 2025-02 - "secure": null, // Blink only as of 2025-02 - "sameSite": null, // Blink only as of 2025-02 - "partitioned": null // Blink only as of 2025-02 - } - } - }, - "CredentialRequestOptions": { - "members": { - "member": { - // Only `mediation`, `publicKey`, `signal` are implemented by 2+ engines, everything else is currently Blink only. - // https://searchfox.org/mozilla-central/source/dom/webidl/CredentialManagement.webidl - // https://searchfox.org/wubkat/source/Source/WebCore/Modules/credentialmanagement/CredentialRequestOptions.idl - // https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/credentialmanagement/credential_request_options.idl - "digital": null, // Behind a flag in WebKit and Blink as of 2024-03 - "federated": null, - "identity": null, - "otp": null, - "password": null - } - } - }, - "DisplayMediaStreamOptions": { - "members": { - "member": { - // Only `audio` and `video` are implemented by 2+ engines, everything else is currently Blink only. - // https://searchfox.org/mozilla-central/source/dom/webidl/MediaStream.webidl - // https://searchfox.org/wubkat/source/Source/WebCore/Modules/mediastream/MediaDevices.idl - // https://source.chromium.org/chromium/chromium/src/+/main:third_party/devtools-frontend/src/node_modules/@webref/idl/screen-capture.idl - "monitorTypeSurfaces": null, - "selfBrowserSurface": null, - "surfaceSwitching": null, - "systemAudio": null - } - } - }, - "EncodedVideoChunkInit": { - "members": { - "member": { - "transfer": null, // Blink only as of 2023-11 - } - } - }, - "EncodedVideoChunkMetadata": { - "members": { - "member": { - "alphaSideData": null, // Blink only as of 2023-03 - "svc": null // Blink only as of 2023-03 - } - } - }, - "FocusOptions": { - "members": { - "member": { - "focusVisible": null // Gecko only as of 2022-09 - } - } - }, - "FontFaceDescriptors": { - "members": { - "member": { - "variationSettings": null // Gecko-only as of 2022-10 - } - } - }, - "GetAnimationsOptions": { - "members": { - "member": { - "pseudoElement": null // No implementation as of 2024-11 - } - } - }, - "GPURequestAdapterOptions": { - "members": { - "member": { - "featureLevel": null // Blink experimental only as of 2024-11 - } - } - }, - "GPUShaderModuleDescriptor": { - "members": { - "member": { - "compilationHints": null // Blink only as of 2024-11 - } - } - }, - "GPUTextureViewDescriptor": { - "members": { - "member": { - "usage": null // Blink only as of 2024-11 - } - } - }, - "IntersectionObserverInit": { - "members": { - "member": { - "delay": null, // Blink only as of 2024-07 - "scrollMargin": null, // Blink only as of 2024-07 - "trackVisibility": null // Blink only as of 2024-07 - } - } - }, - "KeyframeAnimationOptions": { - "members": { - "member": { - "rangeEnd": null, // Blink only as of 2023-04 - "rangeStart": null // Blink only as of 2023-04 - } - } - }, - "MediaCapabilitiesDecodingInfo": { - "members": { - "member": { - "keySystemAccess": null - } - } - }, - "MediaDecodingConfiguration": { - "members": { - "member": { - "keySystemConfiguration": null - } - } - }, - "MediaMetadataInit": { - "members": { - "member": { - "chapterInfo": null // Blink experimental only as of 2024-04 - } - } - }, - "MediaRecorderOptions": { - "members": { - "member": { - "audioBitrateMode": null, // Blink only as of 2023-05 - "videoKeyFrameIntervalCount": null, // No implementation as of 2023-05 - "videoKeyFrameIntervalDuration": null // No implementation as of 2023-05 - } - } - }, - "MediaSessionActionDetails": { - "members": { - "member": { - "isActivating": null // WebKit only as of 2024-10 - } - } - }, - "MediaTrackCapabilities": { - "members": { - "member": { - // Gecko: Unsupported - // WebKit: https://searchfox.org/wubkat/source/Source/WebCore/Modules/mediastream/MediaStreamTrack.idl - // Blink: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/mediastream/media_track_capabilities.idl - "latency": null, // Blink only as of 2022-11 - "resizeMode": null, // Blink only as of 2022-11 + "callbackFunctions": { + "callbackFunction": { + "Function": null, + "PerformanceObserverCallback": { + "signature": { + "0": { + "param": ["options"] + } + } + } + } + }, + "enums": { + "enum": { + "AuthenticatorTransport": { + "value": ["smart-card"] // WebKit only as of 2023-05 + }, + "ConnectionType": { + "value": ["wimax"] + }, + "GPUBlendFactor": { + "value": [ + "one-minus-src1", // Blink only as of 2024-11 + "one-minus-src1-alpha", // Blink only as of 2024-11 + "src1", // Blink only as of 2024-11 + "src1-alpha" // Blink only as of 2024-11 + ] + }, + "GPUFeatureName": { + "value": [ + "clip-distances", // Blink only as of 2024-11 + "dual-source-blending", // Blink only as of 2024-11 + "float32-blendable", // Blink only as of 2024-11 + "texture-compression-astc-sliced-3d", // No implementation as of 2024-11 + "texture-compression-bc-sliced-3d" // No implementation as of 2024-11 + ] + }, + "GPUVertexFormat": { + "value": [ + "float16", // Blink only as of 2024-11 + "sint16", // Blink only as of 2024-11 + "sint8", // Blink only as of 2024-11 + "snorm16", // Blink only as of 2024-11 + "snorm8", // Blink only as of 2024-11 + "uint16", // Blink only as of 2024-11 + "uint8", // Blink only as of 2024-11 + "unorm16", // Blink only as of 2024-11 + "unorm8", // Blink only as of 2024-11 + "unorm8x4-bgra" // Blink only as of 2024-11 + ] + }, + "MediaSessionAction": { + "value": [ + "enterpictureinpicture", // Blink only as of 2024-07 + "hangup", // Blink only as of 2024-07 + "nextslide", // Blink only as of as of 2024-07 + "previousslide", // Blink only as of as of 2024-07 + "togglecamera", // Blink only as of 2024-07 + "togglemicrophone", // Blink only as of 2024-07 + "togglescreenshare", // No implementation as of 2024-07 + "voiceactivity" // No implementation as of 2024-07 + ] + }, + "RequestDestination": { + "value": [ + "json" // No implementation as of 2023-11 + ] + }, + "ValueType": null, + "VideoColorPrimaries": { + "value": [ + "bt2020", // Blink only as of 2022-10 + "smpte432" // Blink only as of 2022-10 + ] + }, + "VideoMatrixCoefficients": { + "value": [ + "bt2020-ncl" // Blink only as of 2022-10 + ] + }, + "VideoPixelFormat": { + "value": [ + // All no implementation as of 2024-03 + "I420AP10", + "I420AP12", + "I420P10", + "I420P12", + "I422A", + "I422AP10", + "I422AP12", + "I422P10", + "I422P12", + "I444A", + "I444AP10", + "I444AP12", + "I444P10", + "I444P12" + ] + }, + "VideoTransferCharacteristics": { + "value": [ + "hlg", // Blink only as of 2022-10 + "linear", // Blink only as of 2022-10 + "pq" // Blink only as of 2022-10 + ] + } + } + }, + "interfaces": { + "interface": { + "Clipboard": { + "methods": { + "method": { + "read": { + "signature": { + "0": { + "param": ["formats"] // Blink-only as of 2023-11 + } + } + } + } + } + }, + "CSSRule": { + "constants": { + "constant": { + "MARGIN_RULE": null // WebKit only as of 2023-10 + } + } + }, + "Document": { + "methods": { + "method": { + // Manually moved to DocumentOrShadowRoot + // See https://github.com/w3c/csswg-drafts/issues/5886 and https://github.com/w3c/csswg-drafts/issues/556 + "elementFromPoint": null, + "elementsFromPoint": null + } + } + }, + "HTMLElement": { + "methods": { + "method": { + "showPopover": { + "signature": { + "0": { + "param": ["options"] // Blink only as of 2024-11 + } + } + } + } + } + }, + "IntersectionObserverEntry": { + "constructor": null // WebKit-only as of 2024-07 + }, + "OffscreenCanvasRenderingContext2D": { + "implements": ["CanvasSettings"] // Blink only as of 2025-01 + }, + "PaymentResponse": { + "methods": { + "method": { + "complete": { + "signature": { + "0": { + "param": ["details"] // WebKit-only as of 2023-11 + } + } + } + } + } + }, + "ReadableStreamBYOBReader": { + "methods": { + "method": { + "read": { + "signature": { + "0": { + "param": ["options"] // No implementations as of 2023-11 + } + } + } + } + } + }, + "RTCEncodedAudioFrame": { + "constructor": null // Blink experimental only as of 2024-05 + }, + "RTCEncodedVideoFrame": { + "constructor": null // Blink experimental only as of 2024-05 + }, + "SVGFEGaussianBlurElement": { + "constants": { + "constant": { + "SVG_EDGEMODE_DUPLICATE": null, + "SVG_EDGEMODE_NONE": null, + "SVG_EDGEMODE_UNKNOWN": null, + "SVG_EDGEMODE_WRAP": null + } + } + }, + "WebGLBuffer": { + "extends": null + }, + "WebGLFramebuffer": { + "extends": null + }, + "WebGLProgram": { + "extends": null + }, + "WebGLQuery": { + "extends": null + }, + "WebGLRenderbuffer": { + "extends": null + }, + "WebGLSampler": { + "extends": null + }, + "WebGLShader": { + "extends": null + }, + "WebGLSync": { + "extends": null + }, + "WebGLTexture": { + "extends": null + }, + "WebGLTransformFeedback": { + "extends": null + }, + "WebGLVertexArrayObject": { + "extends": null + }, + "WebGLVertexArrayObjectOES": { + "extends": null + } + } + }, + "dictionaries": { + "dictionary": { + "AudioContextOptions": { + "members": { + "member": { + "renderSizeHint": null, // No implementation as of 2023-10 + "sinkId": null // Blink only as of 2023-10 + } + } + }, + "AudioEncoderConfig": { + "members": { + "member": { + "aac": null, // Blink only as of 2024-09 + "flac": null // Blink only as of 2024-09 + } + } + }, + "AuthenticationExtensionsClientInputs": { + "members": { + "member": { + // only `appid`, `credProps`, and `hmacCreateSecret` are implemented by 2+ engines, everything else is Blink only as of 2022-10. + // https://searchfox.org/mozilla-central/source/dom/webidl/WebAuthentication.webidl + // https://searchfox.org/wubkat/source/Source/WebCore/Modules/webauthn/AuthenticationExtensionsClientInputs.idl + // https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_inputs.idl + "appidExclude": null, + "credBlob": null, + "credentialProtectionPolicy": null, + "enforceCredentialProtectionPolicy": null, + "getCredBlob": null, + "hmacGetSecret": null, // No implementation as of 2023-11 + "largeBlob": null, + "payment": null + } + } + }, + "AuthenticationExtensionsClientOutputs": { + "members": { + "member": { + // (same as *Inputs) + "appidExclude": null, // No implementation as of 2023-11 + "hmacGetSecret": null, // No implementation as of 2023-11 + "largeBlob": null + } + } + }, + "CanvasRenderingContext2DSettings": { + "members": { + "member": { + "colorType": null // No implementation as of 2025-02 + } + } + }, + "CredentialCreationOptions": { + "members": { + "member": { + "federated": null, // Blink only as of 2024-06 + "password": null, // Blink only as of 2024-06 + "mediation": null // WebKit only as of 2024-06 + } + } + }, + "CookieListItem": { + "members": { + "member": { + "domain": null, // Blink only as of 2025-02 + "path": null, // Blink only as of 2025-02 + "expires": null, // Blink only as of 2025-02 + "secure": null, // Blink only as of 2025-02 + "sameSite": null, // Blink only as of 2025-02 + "partitioned": null // Blink only as of 2025-02 + } + } + }, + "CredentialRequestOptions": { + "members": { + "member": { + // Only `mediation`, `publicKey`, `signal` are implemented by 2+ engines, everything else is currently Blink only. + // https://searchfox.org/mozilla-central/source/dom/webidl/CredentialManagement.webidl + // https://searchfox.org/wubkat/source/Source/WebCore/Modules/credentialmanagement/CredentialRequestOptions.idl + // https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/credentialmanagement/credential_request_options.idl + "digital": null, // Behind a flag in WebKit and Blink as of 2024-03 + "federated": null, + "identity": null, + "otp": null, + "password": null + } + } + }, + "DisplayMediaStreamOptions": { + "members": { + "member": { + // Only `audio` and `video` are implemented by 2+ engines, everything else is currently Blink only. + // https://searchfox.org/mozilla-central/source/dom/webidl/MediaStream.webidl + // https://searchfox.org/wubkat/source/Source/WebCore/Modules/mediastream/MediaDevices.idl + // https://source.chromium.org/chromium/chromium/src/+/main:third_party/devtools-frontend/src/node_modules/@webref/idl/screen-capture.idl + "monitorTypeSurfaces": null, + "selfBrowserSurface": null, + "surfaceSwitching": null, + "systemAudio": null + } + } + }, + "EncodedVideoChunkInit": { + "members": { + "member": { + "transfer": null, // Blink only as of 2023-11 + } + } + }, + "EncodedVideoChunkMetadata": { + "members": { + "member": { + "alphaSideData": null, // Blink only as of 2023-03 + "svc": null // Blink only as of 2023-03 + } + } + }, + "FocusOptions": { + "members": { + "member": { + "focusVisible": null // Gecko only as of 2022-09 + } + } + }, + "FontFaceDescriptors": { + "members": { + "member": { + "variationSettings": null // Gecko-only as of 2022-10 + } + } + }, + "GetAnimationsOptions": { + "members": { + "member": { + "pseudoElement": null // No implementation as of 2024-11 + } + } + }, + "GPURequestAdapterOptions": { + "members": { + "member": { + "featureLevel": null // Blink experimental only as of 2024-11 + } + } + }, + "GPUShaderModuleDescriptor": { + "members": { + "member": { + "compilationHints": null // Blink only as of 2024-11 + } + } + }, + "GPUTextureViewDescriptor": { + "members": { + "member": { + "usage": null // Blink only as of 2024-11 + } + } + }, + "IntersectionObserverInit": { + "members": { + "member": { + "delay": null, // Blink only as of 2024-07 + "scrollMargin": null, // Blink only as of 2024-07 + "trackVisibility": null // Blink only as of 2024-07 + } + } + }, + "KeyframeAnimationOptions": { + "members": { + "member": { + "rangeEnd": null, // Blink only as of 2023-04 + "rangeStart": null // Blink only as of 2023-04 + } + } + }, + "MediaCapabilitiesDecodingInfo": { + "members": { + "member": { + "keySystemAccess": null + } + } + }, + "MediaDecodingConfiguration": { + "members": { + "member": { + "keySystemConfiguration": null + } + } + }, + "MediaMetadataInit": { + "members": { + "member": { + "chapterInfo": null // Blink experimental only as of 2024-04 + } + } + }, + "MediaRecorderOptions": { + "members": { + "member": { + "audioBitrateMode": null, // Blink only as of 2023-05 + "videoKeyFrameIntervalCount": null, // No implementation as of 2023-05 + "videoKeyFrameIntervalDuration": null // No implementation as of 2023-05 + } + } + }, + "MediaSessionActionDetails": { + "members": { + "member": { + "isActivating": null // WebKit only as of 2024-10 + } + } + }, + "MediaTrackCapabilities": { + "members": { + "member": { + // Gecko: Unsupported + // WebKit: https://searchfox.org/wubkat/source/Source/WebCore/Modules/mediastream/MediaStreamTrack.idl + // Blink: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/mediastream/media_track_capabilities.idl + "latency": null, // Blink only as of 2022-11 + "resizeMode": null, // Blink only as of 2022-11 - // Screen Share extensions - // https://w3c.github.io/mediacapture-screen-share/#mediadevices-additions - "cursor": null, - "logicalSurface": null, + // Screen Share extensions + // https://w3c.github.io/mediacapture-screen-share/#mediadevices-additions + "cursor": null, + "logicalSurface": null, - // Image Capture extensions which is Blink only as of 2022-11 - // https://w3c.github.io/mediacapture-image/#mediatrackcapabilities-section - "whiteBalanceMode": null, - "exposureMode": null, - "focusMode": null, - "exposureCompensation": null, - "exposureTime": null, - "colorTemperature": null, - "iso": null, - "brightness": null, - "contrast": null, - "saturation": null, - "sharpness": null, - "focusDistance": null, - "pan": null, - "tilt": null, - "zoom": null, - "torch": null - } - } - }, - "MediaTrackConstraintSet": { - "members": { - "member": { - // Gecko: https://searchfox.org/mozilla-central/source/dom/webidl/MediaStreamTrack.webidl - // WebKit: https://searchfox.org/wubkat/source/Source/WebCore/Modules/mediastream/MediaTrackConstraints.idl#28 - // Blink: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/mediastream/media_track_constraint_set.idl - "latency": null, // Blink only as of 2022-11 - "resizeMode": null, // Blink only as of 2022-11 + // Image Capture extensions which is Blink only as of 2022-11 + // https://w3c.github.io/mediacapture-image/#mediatrackcapabilities-section + "whiteBalanceMode": null, + "exposureMode": null, + "focusMode": null, + "exposureCompensation": null, + "exposureTime": null, + "colorTemperature": null, + "iso": null, + "brightness": null, + "contrast": null, + "saturation": null, + "sharpness": null, + "focusDistance": null, + "pan": null, + "tilt": null, + "zoom": null, + "torch": null + } + } + }, + "MediaTrackConstraintSet": { + "members": { + "member": { + // Gecko: https://searchfox.org/mozilla-central/source/dom/webidl/MediaStreamTrack.webidl + // WebKit: https://searchfox.org/wubkat/source/Source/WebCore/Modules/mediastream/MediaTrackConstraints.idl#28 + // Blink: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/mediastream/media_track_constraint_set.idl + "latency": null, // Blink only as of 2022-11 + "resizeMode": null, // Blink only as of 2022-11 - // Screen Share extensions - // https://w3c.github.io/mediacapture-screen-share/#mediadevices-additions - "cursor": null, - "logicalSurface": null, - "restrictOwnAudio": null, - "suppressLocalAudioPlayback": null, + // Screen Share extensions + // https://w3c.github.io/mediacapture-screen-share/#mediadevices-additions + "cursor": null, + "logicalSurface": null, + "restrictOwnAudio": null, + "suppressLocalAudioPlayback": null, - // Image Capture extensions which is Blink only as of 2022-11 - // https://w3c.github.io/mediacapture-image/#mediatrackcapabilities-section - "whiteBalanceMode": null, - "exposureMode": null, - "focusMode": null, - "pointsOfInterest": null, - "exposureCompensation": null, - "exposureTime": null, - "colorTemperature": null, - "iso": null, - "brightness": null, - "contrast": null, - "saturation": null, - "sharpness": null, - "focusDistance": null, - "pan": null, - "tilt": null, - "zoom": null, - "torch": null - } - } - }, - "MediaTrackSettings": { - "members": { - "member": { - // Gecko: https://searchfox.org/mozilla-central/source/dom/webidl/MediaTrackSettings.webidl - // WebKit: https://searchfox.org/wubkat/source/Source/WebCore/Modules/mediastream/MediaStreamTrack.idl - // Blink: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/mediastream/media_track_settings.idl - "latency": null, // Blink only as of 2022-11 - "resizeMode": null, // Blink only as of 2022-11 + // Image Capture extensions which is Blink only as of 2022-11 + // https://w3c.github.io/mediacapture-image/#mediatrackcapabilities-section + "whiteBalanceMode": null, + "exposureMode": null, + "focusMode": null, + "pointsOfInterest": null, + "exposureCompensation": null, + "exposureTime": null, + "colorTemperature": null, + "iso": null, + "brightness": null, + "contrast": null, + "saturation": null, + "sharpness": null, + "focusDistance": null, + "pan": null, + "tilt": null, + "zoom": null, + "torch": null + } + } + }, + "MediaTrackSettings": { + "members": { + "member": { + // Gecko: https://searchfox.org/mozilla-central/source/dom/webidl/MediaTrackSettings.webidl + // WebKit: https://searchfox.org/wubkat/source/Source/WebCore/Modules/mediastream/MediaStreamTrack.idl + // Blink: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/mediastream/media_track_settings.idl + "latency": null, // Blink only as of 2022-11 + "resizeMode": null, // Blink only as of 2022-11 - // Screen Share extensions - // https://w3c.github.io/mediacapture-screen-share/#mediadevices-additions - "cursor": null, // Blink only as of 2022-11 - "logicalSurface": null, // Blink only as of 2022-11 - "restrictOwnAudio": null, // Blink only as of 2022-11 - "suppressLocalAudioPlayback": null, // Blink only as of 2022-11 + // Screen Share extensions + // https://w3c.github.io/mediacapture-screen-share/#mediadevices-additions + "cursor": null, // Blink only as of 2022-11 + "logicalSurface": null, // Blink only as of 2022-11 + "restrictOwnAudio": null, // Blink only as of 2022-11 + "suppressLocalAudioPlayback": null, // Blink only as of 2022-11 - // Image Capture extensions which are Blink only as of 2022-11 - // https://w3c.github.io/mediacapture-image/#mediatrackcapabilities-section - "whiteBalanceMode": null, - "exposureMode": null, - "focusMode": null, - "pointsOfInterest": null, - "exposureCompensation": null, - "exposureTime": null, - "colorTemperature": null, - "iso": null, - "brightness": null, - "contrast": null, - "saturation": null, - "sharpness": null, - "focusDistance": null, - "pan": null, - "tilt": null, - "zoom": null, - "torch": null - } - } - }, - "MediaTrackSupportedConstraints": { - "members": { - "member": { - // Gecko: https://searchfox.org/mozilla-central/source/dom/webidl/MediaTrackSupportedConstraints.webidl - // WebKit: https://searchfox.org/wubkat/source/Source/WebCore/Modules/mediastream/MediaTrackSupportedConstraints.idl - // Blink: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/mediastream/media_track_supported_constraints.idl - "latency": null, - "resizeMode": null, + // Image Capture extensions which are Blink only as of 2022-11 + // https://w3c.github.io/mediacapture-image/#mediatrackcapabilities-section + "whiteBalanceMode": null, + "exposureMode": null, + "focusMode": null, + "pointsOfInterest": null, + "exposureCompensation": null, + "exposureTime": null, + "colorTemperature": null, + "iso": null, + "brightness": null, + "contrast": null, + "saturation": null, + "sharpness": null, + "focusDistance": null, + "pan": null, + "tilt": null, + "zoom": null, + "torch": null + } + } + }, + "MediaTrackSupportedConstraints": { + "members": { + "member": { + // Gecko: https://searchfox.org/mozilla-central/source/dom/webidl/MediaTrackSupportedConstraints.webidl + // WebKit: https://searchfox.org/wubkat/source/Source/WebCore/Modules/mediastream/MediaTrackSupportedConstraints.idl + // Blink: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/mediastream/media_track_supported_constraints.idl + "latency": null, + "resizeMode": null, - // Screen Share extensions - // https://w3c.github.io/mediacapture-screen-share/#mediadevices-additions - "cursor": null, - "logicalSurface": null, - "restrictOwnAudio": null, - "suppressLocalAudioPlayback": null, // Blink only as of 2022-11 + // Screen Share extensions + // https://w3c.github.io/mediacapture-screen-share/#mediadevices-additions + "cursor": null, + "logicalSurface": null, + "restrictOwnAudio": null, + "suppressLocalAudioPlayback": null, // Blink only as of 2022-11 - // Image Capture extensions which are Blink only as of 2022-11 - // https://w3c.github.io/mediacapture-image/#mediatrackcapabilities-section - "whiteBalanceMode": null, - "exposureMode": null, - "focusMode": null, - "pointsOfInterest": null, - "exposureCompensation": null, - "exposureTime": null, - "colorTemperature": null, - "iso": null, - "brightness": null, - "contrast": null, - "saturation": null, - "sharpness": null, - "focusDistance": null, - "pan": null, - "tilt": null, - "zoom": null, - "torch": null - } - } - }, - "NotificationOptions": { - "members": { - "member": { - // All Blink only as of 2023-10 - "actions": null, - "image": null, - "renotify": null, - "timestamp": null, - "vibrate": null - } - } - }, - "OfflineAudioContextOptions": { - "members": { - "member": { - "renderSizeHint": null // No implementation as of 2023-10 - } - } - }, - "OpusEncoderConfig": { - "members": { - "member": { - "application": null, // Blink only as of 2024-09 - "signal": null // Blink only as of 2024-09 - } - } - }, - "PaymentDetailsUpdate": { - "members": { - "member": { - "payerErrors": null // WebKit only as of 2024-08 - } - } - }, - "PaymentOptions": { - "members": { - "member": { - "requestBillingAddress": null // WebKit only as of 2024-08 - } - } - }, - "PaymentValidationErrors": { - "members": { - "member": { - "paymentMethod": null // WebKit only as of 2024-08 - } - } - }, - "PerformanceObserverInit": { - "members": { - "member": { - "durationThreshold": null - } - } - }, - "PointerEventInit": { - "members": { - "member": { - "persistentDeviceId": null // Blink only as of 2024-08 - } - } - }, - "PopStateEventInit": { - "members": { - "member": { - "hasUAVisualTransition": null // Blink only as of 2023-09 - } - } - }, - "PublicKeyCredentialCreationOptions": { - "members": { - "member": { - "attestationFormats": null, // Blink only as of 2024-08 - "hints": null // Blink only as of 2024-08 - } - } - }, - "PublicKeyCredentialCreationOptionsJSON": { - "members": { - "member": { - "attestationFormats": null // Gecko only as of 2024-08 - } - } - }, - "PublicKeyCredentialRequestOptions": { - "members": { - "member": { - "hints": null // Blink only as of 2024-08 - } - } - }, - "ReadableStreamReadResult": null, - "RequestInit": { - "members": { - "member": { - "adAuctionHeaders": null, // Blink only as of 2023-11 - "attributionReporting": null, // Blink only as of 2023-10 - "duplex": null, // Blink only as of 2023-09 - "privateToken": null, // Blink only as of 2023-09 - "sharedStorageWritable": null, // Blink only as of 2023-10 - "targetAddressSpace": null // Blink only as of 2023-09 - } - } - }, - "RTCEncodedAudioFrameMetadata": { - "members": { - "member": { - "captureTime": null, // Blink experimental only as of 2025-03 - "mimeType": null, // Blink only as of 2025-03 - "receiveTime": null, // Blink experimental only as of 2025-03 - "rtpTimestamp": null, // Blink only as of 2025-03 - "senderCaptureTimeOffset": null // Blink experimental only as of 2025-03 - } - } - }, - "RTCEncodedVideoFrameMetadata": { - "members": { - "member": { - "captureTime": null, // Blink experimental only as of 2025-03 - "mimeType": null, // Blink only as of 2025-03 - "receiveTime": null, // Blink experimental only as of 2025-03 - "rtpTimestamp": null, // Blink only as of 2025-03 - "senderCaptureTimeOffset": null // Blink experimental only as of 2025-03 - } - } - }, - "RTCConfiguration": { - "members": { - "member": { - "peerIdentity": null // Gecko only as of 2024-11 - } - } - }, - "RTCDataChannelInit": { - "members": { - "member": { - "priority": null // Blink experimental only as of 2024-11 - } - } - }, - "RTCInboundRtpStreamStats": { - "members": { - "member": { - // https://searchfox.org/mozilla-central/source/dom/webidl/RTCStatsReport.webidl - // https://searchfox.org/wubkat/source/Source/WebCore/Modules/mediastream/RTCStatsReport.idl - // https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/stats/rtcstats_objects.cc - "corruptionMeasurements": null, // Blink only as of 2024-11 - "powerEfficientDecoder": null, // Blink only as of 2024-11 - "totalCorruptionProbability": null, // Blink only as of 2024-11 - "totalSquaredCorruptionProbability": null // Blink only as of 2024-11 - } - } - }, - "RTCOutboundRtpStreamStats": { - "members": { - "member": { - "powerEfficientEncoder": null, // Blink only as of 2024-11 - "encoderImplementation": null // Blink only as of 2024-11 - } - } - }, - "RTCRtpEncodingParameters": { - "members": { - "member": { - "codec": null, // Blink only as of 2024-11 - "scalabilityMode": null // Blink only as of 2024-11 - } - } - }, - "ScrollIntoViewOptions": { - "members": { - "member": { - "container": null // No implementation as of 2025-02 - } - } - }, - "Transformer": { - "members": { - "member": { - "cancel": null // No implementation as of 2023-10 - } - } - }, - "UIEventInit": { - "members": { - "member": { - "sourceCapabilities": null - } - } - }, - "VideoConfiguration": { - "members": { - "member": { - "spatialScalability": null - } - } - }, - "VideoDecoderConfig": { - "members": { - "member": { - "flip": null, // No implementation as of 2025-02 - "rotation": null // No implementation as of 2025-02 - } - } - }, - "VideoEncoderConfig": { - "members": { - "member": { - "hevc": null // Blink only as of 2023-03 - } - } - }, - "VideoEncoderEncodeOptions": { - "members": { - "member": { - "av1": null, // Blink only as of 2023-09 - "hevc": null, // No implementation as of 2023-09 - "vp9": null // Blink only as of 2023-09 - } - } - }, - "VideoFrameInit": { - "members": { - "member": { - "flip": null, // No implementation as of 2024-11 - "metadata": null, // No implementation as of 2024-11. Linked to VideoFrame.metadata() - "rotation": null // No implementation as of 2024-11 - } - } - }, - "VideoFrameBufferInit": { - "members": { - "member": { - "flip": null, // No implementation as of 2024-11 - "metadata": null, // No implementation as of 2024-04. Linked to VideoFrame.metadata() - "rotation": null, // No implementation as of 2024-11 - "transfer": null // Blink only as of 2024-11 - } - } - }, - "WebGLContextAttributes": { - "members": { - "member": { - "xrCompatible": null - } - } - }, - "WebTransportOptions": { - "members": { - "member": { - "anticipatedConcurrentIncomingBidirectionalStreams": null, // No implementation as of 2024-09 - "anticipatedConcurrentIncomingUnidirectionalStreams": null, // No implementation as of 2024-09 - "protocols": null // No implementation as of 2024-09 - } - } - }, - "WebTransportSendStreamOptions": { - "members": { - "member": { - "waitUntilAvailable": null // Blink only as of 2024-09 - } - } - } - } - }, - "typedefs": { - "typedef": [ - "ArrayBufferView" - ] - } -} + // Image Capture extensions which are Blink only as of 2022-11 + // https://w3c.github.io/mediacapture-image/#mediatrackcapabilities-section + "whiteBalanceMode": null, + "exposureMode": null, + "focusMode": null, + "pointsOfInterest": null, + "exposureCompensation": null, + "exposureTime": null, + "colorTemperature": null, + "iso": null, + "brightness": null, + "contrast": null, + "saturation": null, + "sharpness": null, + "focusDistance": null, + "pan": null, + "tilt": null, + "zoom": null, + "torch": null + } + } + }, + "NotificationOptions": { + "members": { + "member": { + // All Blink only as of 2023-10 + "actions": null, + "image": null, + "renotify": null, + "timestamp": null, + "vibrate": null + } + } + }, + "OfflineAudioContextOptions": { + "members": { + "member": { + "renderSizeHint": null // No implementation as of 2023-10 + } + } + }, + "OpusEncoderConfig": { + "members": { + "member": { + "application": null, // Blink only as of 2024-09 + "signal": null // Blink only as of 2024-09 + } + } + }, + "PaymentDetailsUpdate": { + "members": { + "member": { + "payerErrors": null // WebKit only as of 2024-08 + } + } + }, + "PaymentOptions": { + "members": { + "member": { + "requestBillingAddress": null // WebKit only as of 2024-08 + } + } + }, + "PaymentValidationErrors": { + "members": { + "member": { + "paymentMethod": null // WebKit only as of 2024-08 + } + } + }, + "PerformanceObserverInit": { + "members": { + "member": { + "durationThreshold": null + } + } + }, + "PointerEventInit": { + "members": { + "member": { + "persistentDeviceId": null // Blink only as of 2024-08 + } + } + }, + "PopStateEventInit": { + "members": { + "member": { + "hasUAVisualTransition": null // Blink only as of 2023-09 + } + } + }, + "PublicKeyCredentialCreationOptions": { + "members": { + "member": { + "attestationFormats": null, // Blink only as of 2024-08 + "hints": null // Blink only as of 2024-08 + } + } + }, + "PublicKeyCredentialCreationOptionsJSON": { + "members": { + "member": { + "attestationFormats": null // Gecko only as of 2024-08 + } + } + }, + "PublicKeyCredentialRequestOptions": { + "members": { + "member": { + "hints": null // Blink only as of 2024-08 + } + } + }, + "ReadableStreamReadResult": null, + "RequestInit": { + "members": { + "member": { + "adAuctionHeaders": null, // Blink only as of 2023-11 + "attributionReporting": null, // Blink only as of 2023-10 + "duplex": null, // Blink only as of 2023-09 + "privateToken": null, // Blink only as of 2023-09 + "sharedStorageWritable": null, // Blink only as of 2023-10 + "targetAddressSpace": null // Blink only as of 2023-09 + } + } + }, + "RTCEncodedAudioFrameMetadata": { + "members": { + "member": { + "captureTime": null, // Blink experimental only as of 2025-03 + "mimeType": null, // Blink only as of 2025-03 + "receiveTime": null, // Blink experimental only as of 2025-03 + "rtpTimestamp": null, // Blink only as of 2025-03 + "senderCaptureTimeOffset": null // Blink experimental only as of 2025-03 + } + } + }, + "RTCEncodedVideoFrameMetadata": { + "members": { + "member": { + "captureTime": null, // Blink experimental only as of 2025-03 + "mimeType": null, // Blink only as of 2025-03 + "receiveTime": null, // Blink experimental only as of 2025-03 + "rtpTimestamp": null, // Blink only as of 2025-03 + "senderCaptureTimeOffset": null // Blink experimental only as of 2025-03 + } + } + }, + "RTCConfiguration": { + "members": { + "member": { + "peerIdentity": null // Gecko only as of 2024-11 + } + } + }, + "RTCDataChannelInit": { + "members": { + "member": { + "priority": null // Blink experimental only as of 2024-11 + } + } + }, + "RTCInboundRtpStreamStats": { + "members": { + "member": { + // https://searchfox.org/mozilla-central/source/dom/webidl/RTCStatsReport.webidl + // https://searchfox.org/wubkat/source/Source/WebCore/Modules/mediastream/RTCStatsReport.idl + // https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/stats/rtcstats_objects.cc + "corruptionMeasurements": null, // Blink only as of 2024-11 + "powerEfficientDecoder": null, // Blink only as of 2024-11 + "totalCorruptionProbability": null, // Blink only as of 2024-11 + "totalSquaredCorruptionProbability": null // Blink only as of 2024-11 + } + } + }, + "RTCOutboundRtpStreamStats": { + "members": { + "member": { + "powerEfficientEncoder": null, // Blink only as of 2024-11 + "encoderImplementation": null // Blink only as of 2024-11 + } + } + }, + "RTCRtpEncodingParameters": { + "members": { + "member": { + "codec": null, // Blink only as of 2024-11 + "scalabilityMode": null // Blink only as of 2024-11 + } + } + }, + "ScrollIntoViewOptions": { + "members": { + "member": { + "container": null // No implementation as of 2025-02 + } + } + }, + "Transformer": { + "members": { + "member": { + "cancel": null // No implementation as of 2023-10 + } + } + }, + "UIEventInit": { + "members": { + "member": { + "sourceCapabilities": null + } + } + }, + "VideoConfiguration": { + "members": { + "member": { + "spatialScalability": null + } + } + }, + "VideoDecoderConfig": { + "members": { + "member": { + "flip": null, // No implementation as of 2025-02 + "rotation": null // No implementation as of 2025-02 + } + } + }, + "VideoEncoderConfig": { + "members": { + "member": { + "hevc": null // Blink only as of 2023-03 + } + } + }, + "VideoEncoderEncodeOptions": { + "members": { + "member": { + "av1": null, // Blink only as of 2023-09 + "hevc": null, // No implementation as of 2023-09 + "vp9": null // Blink only as of 2023-09 + } + } + }, + "VideoFrameInit": { + "members": { + "member": { + "flip": null, // No implementation as of 2024-11 + "metadata": null, // No implementation as of 2024-11. Linked to VideoFrame.metadata() + "rotation": null // No implementation as of 2024-11 + } + } + }, + "VideoFrameBufferInit": { + "members": { + "member": { + "flip": null, // No implementation as of 2024-11 + "metadata": null, // No implementation as of 2024-04. Linked to VideoFrame.metadata() + "rotation": null, // No implementation as of 2024-11 + "transfer": null // Blink only as of 2024-11 + } + } + }, + "WebGLContextAttributes": { + "members": { + "member": { + "xrCompatible": null + } + } + }, + "WebTransportOptions": { + "members": { + "member": { + "anticipatedConcurrentIncomingBidirectionalStreams": null, // No implementation as of 2024-09 + "anticipatedConcurrentIncomingUnidirectionalStreams": null, // No implementation as of 2024-09 + "protocols": null // No implementation as of 2024-09 + } + } + }, + "WebTransportSendStreamOptions": { + "members": { + "member": { + "waitUntilAvailable": null // Blink only as of 2024-09 + } + } + } + } + }, + "typedefs": { + "typedef": [ + "ArrayBufferView" + ] + } +} \ No newline at end of file diff --git a/package.json b/package.json index 93f41712d..48259b4a7 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "worklet" ], "scripts": { - "build": "tsc && node ./lib/build.js", + "build": "tsc && node ./lib/build.js && node ./lib/verifyFiles", "baseline-accept": "cpx \"generated\\**\" baselines\\", "lint": "eslint --max-warnings 0 src deploy/*.js && tsc -p deploy/jsconfig.json", "lint-fix": "eslint --max-warnings 0 src deploy/*.js --fix", diff --git a/src/verifyFiles.ts b/src/verifyFiles.ts new file mode 100644 index 000000000..b772ad8f0 --- /dev/null +++ b/src/verifyFiles.ts @@ -0,0 +1,82 @@ +import { readFileSync } from "fs"; +import { parse, ParseError, visit } from "jsonc-parser"; +import { URL } from "url"; + +/** + * Recursively verify that all object keys are sorted alphabetically. + * Throws an error if any object has unsorted keys. + */ +function verifyObjectKeysSorted(obj: unknown, path: string = ""): void { + if (obj && typeof obj === "object" && !Array.isArray(obj)) { + const keys = Object.keys(obj); + const sortedKeys = [...keys].sort(); + + for (let i = 0; i < keys.length; i++) { + if (keys[i] !== sortedKeys[i]) { + throw new Error( + `❌ Keys are not sorted at ${path || "root object"}.\nExpected order: ${sortedKeys.join(", ")}`, + ); + } + } + + for (const key of keys) { + verifyObjectKeysSorted( + (obj as Record)[key], + path ? `${path}.${key}` : key, + ); + } + } else if (Array.isArray(obj)) { + obj.forEach((item, index) => + verifyObjectKeysSorted(item, `${path}[${index}]`), + ); + } +} + +/** + * Check if the given JSONC content has trailing commas. + */ +function hasTrailingCommas(content: string): boolean { + let found = false; + + visit(content, { + onObjectEnd: (offset) => { + if (content[offset - 1] === ",") found = true; + }, + onArrayEnd: (offset) => { + if (content[offset - 1] === ",") found = true; + }, + }); + + return found; +} + +/** + * Verify and validate multiple JSONC files: + * - Check for syntax errors + * - Disallow trailing commas + * - Ensure keys are sorted + */ +export function verifyFiles(): void { + const filenames = ["overridingTypes", "removedTypes", "addedTypes"]; + + for (const name of filenames) { + const filePath = new URL(`../inputfiles/${name}.jsonc`, import.meta.url); + const content = readFileSync(filePath, "utf-8"); + + const errors: ParseError[] = []; + const parsed = parse(content, errors, { allowTrailingComma: true }); + + if (errors.length > 0) { + throw new Error(`❌ ${name}.jsonc contains syntax error(s).`); + } + + if (hasTrailingCommas(content)) { + throw new Error(`❌ ${name}.jsonc has trailing comma(s).`); + } + + verifyObjectKeysSorted(parsed); + + console.log(`✅ ${name}.jsonc is valid, sorted, and clean.`); + } +} +verifyFiles();