From 63e8ae4f651c9de872c47521a833a69a413db35c Mon Sep 17 00:00:00 2001 From: Bashamega Date: Sat, 5 Apr 2025 13:31:24 +0200 Subject: [PATCH 01/10] feat: add comment-json dependency to package.json and package-lock.json --- package-lock.json | 62 +++++++++++++++++++++++++++++++++++++++++++++++ package.json | 3 +++ 2 files changed, 65 insertions(+) diff --git a/package-lock.json b/package-lock.json index 1e9fbfcf7..aacad0d7d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,9 @@ "name": "@typescript/dom-lib-generator", "version": "0.0.1", "license": "Apache-2.0", + "dependencies": { + "comment-json": "^4.2.5" + }, "devDependencies": { "@eslint/js": "^9", "@mdn/browser-compat-data": "^5.5.21", @@ -1277,6 +1280,12 @@ "dev": true, "license": "Python-2.0" }, + "node_modules/array-timsort": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz", + "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==", + "license": "MIT" + }, "node_modules/async-retry": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.2.3.tgz", @@ -1412,6 +1421,22 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, + "node_modules/comment-json": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.5.tgz", + "integrity": "sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==", + "license": "MIT", + "dependencies": { + "array-timsort": "^1.0.3", + "core-util-is": "^1.0.3", + "esprima": "^4.0.1", + "has-own-prop": "^2.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1429,6 +1454,12 @@ "url": "https://opencollective.com/core-js" } }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, "node_modules/cpx2": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/cpx2/-/cpx2-8.0.0.tgz", @@ -2130,6 +2161,19 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/esquery": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", @@ -2595,6 +2639,15 @@ "node": ">=4" } }, + "node_modules/has-own-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz", + "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/has-property-descriptors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", @@ -3669,6 +3722,15 @@ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", "dev": true }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", diff --git a/package.json b/package.json index 93f41712d..732e10aaa 100644 --- a/package.json +++ b/package.json @@ -66,5 +66,8 @@ }, "overrides": { "typescript@*": "$typescript" + }, + "dependencies": { + "comment-json": "^4.2.5" } } From 1d1566708eb03f193a403ddcfa0d2e7d9774def1 Mon Sep 17 00:00:00 2001 From: Bashamega Date: Sat, 5 Apr 2025 13:33:14 +0200 Subject: [PATCH 02/10] Moves the comments-json packages to devdeps --- package-lock.json | 10 +++++++--- package.json | 4 +--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index aacad0d7d..d260279df 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,9 +8,6 @@ "name": "@typescript/dom-lib-generator", "version": "0.0.1", "license": "Apache-2.0", - "dependencies": { - "comment-json": "^4.2.5" - }, "devDependencies": { "@eslint/js": "^9", "@mdn/browser-compat-data": "^5.5.21", @@ -25,6 +22,7 @@ "@webref/events": "^1.11.3", "@webref/idl": "^3.46.1", "bcd-idl-mapper": "^2.3.0", + "comment-json": "^4.2.5", "cpx2": "^8.0.0", "danger": "^12.2.0", "eslint": "^9.9.0", @@ -1284,6 +1282,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz", "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==", + "dev": true, "license": "MIT" }, "node_modules/async-retry": { @@ -1425,6 +1424,7 @@ "version": "4.2.5", "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.5.tgz", "integrity": "sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==", + "dev": true, "license": "MIT", "dependencies": { "array-timsort": "^1.0.3", @@ -1458,6 +1458,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, "license": "MIT" }, "node_modules/cpx2": { @@ -2165,6 +2166,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", @@ -2643,6 +2645,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz", "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -3726,6 +3729,7 @@ "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10" diff --git a/package.json b/package.json index 732e10aaa..00bf6b80e 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,7 @@ "@webref/events": "^1.11.3", "@webref/idl": "^3.46.1", "bcd-idl-mapper": "^2.3.0", + "comment-json": "^4.2.5", "cpx2": "^8.0.0", "danger": "^12.2.0", "eslint": "^9.9.0", @@ -66,8 +67,5 @@ }, "overrides": { "typescript@*": "$typescript" - }, - "dependencies": { - "comment-json": "^4.2.5" } } From 5c6ba1a2f8e8f39b1060587ea7a245aef4f2d6e4 Mon Sep 17 00:00:00 2001 From: Bashamega Date: Sat, 5 Apr 2025 13:33:55 +0200 Subject: [PATCH 03/10] feat: sorter --- src/build.ts | 2 ++ src/build/sorter.ts | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 src/build/sorter.ts diff --git a/src/build.ts b/src/build.ts index f48de928c..105d5a343 100644 --- a/src/build.ts +++ b/src/build.ts @@ -13,6 +13,7 @@ import { getInterfaceElementMergeData } from "./build/webref/elements.js"; import { getInterfaceToEventMap } from "./build/webref/events.js"; import { getWebidls } from "./build/webref/idl.js"; import jsonc from "jsonc-parser"; +import { sortFiles } from "./build/sorter.js"; function mergeNamesakes(filtered: Browser.WebIdl) { const targets = [ @@ -396,3 +397,4 @@ async function emitDom() { } await emitDom(); +sortFiles(); diff --git a/src/build/sorter.ts b/src/build/sorter.ts new file mode 100644 index 000000000..12c3afab3 --- /dev/null +++ b/src/build/sorter.ts @@ -0,0 +1,41 @@ +import * as fs from "fs"; +import commentJson from "comment-json"; + +// A helper function to recursively sort object keys alphabetically. +function sortObjectKeys(obj: T): T { + if (obj && typeof obj === "object" && !Array.isArray(obj)) { + const sorted = {} as any; + Object.keys(obj) + .sort() + .forEach((key) => { + // Recursively sort keys if the value is an object + sorted[key] = sortObjectKeys((obj as any)[key]); + }); + return sorted; + } + return obj; +} + +export function sortFiles() { + const filePath = new URL( + "../../inputfiles/overridingTypes.jsonc", + import.meta.url, + ); // Replace with your JSONC file path + + // Read the JSONC file content + const fileContent = fs.readFileSync(filePath, "utf-8"); + + // Parse the JSONC file while preserving comments + const parsed = commentJson.parse(fileContent, undefined, true); + + // Sort the object keys alphabetically (recursively) + const sortedObject = sortObjectKeys(parsed); + + // Stringify the sorted object back to JSONC format (preserving comments) + const sortedJsonC = commentJson.stringify(sortedObject, null, 2); + + // Write the sorted content back to the file + fs.writeFileSync(filePath, sortedJsonC, "utf-8"); + + console.log("JSONC file keys sorted successfully."); +} From 2dc6568115245b5cb52a6ca51b2ac89a760ccc1b Mon Sep 17 00:00:00 2001 From: Bashamega Date: Sat, 5 Apr 2025 13:36:44 +0200 Subject: [PATCH 04/10] feat: refactor sortFiles to handle multiple JSONC files --- src/build/sorter.ts | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/build/sorter.ts b/src/build/sorter.ts index 12c3afab3..18b71b704 100644 --- a/src/build/sorter.ts +++ b/src/build/sorter.ts @@ -17,25 +17,25 @@ function sortObjectKeys(obj: T): T { } export function sortFiles() { - const filePath = new URL( - "../../inputfiles/overridingTypes.jsonc", - import.meta.url, - ); // Replace with your JSONC file path + const files = ["overridingTypes", "removedTypes", "addedTypes"]; + files.forEach((file) => { + const filePath = new URL(`../../inputfiles/${file}.jsonc`, import.meta.url); // Replace with your JSONC file path - // Read the JSONC file content - const fileContent = fs.readFileSync(filePath, "utf-8"); + // Read the JSONC file content + const fileContent = fs.readFileSync(filePath, "utf-8"); - // Parse the JSONC file while preserving comments - const parsed = commentJson.parse(fileContent, undefined, true); + // Parse the JSONC file while preserving comments + const parsed = commentJson.parse(fileContent, undefined, true); - // Sort the object keys alphabetically (recursively) - const sortedObject = sortObjectKeys(parsed); + // Sort the object keys alphabetically (recursively) + const sortedObject = sortObjectKeys(parsed); - // Stringify the sorted object back to JSONC format (preserving comments) - const sortedJsonC = commentJson.stringify(sortedObject, null, 2); + // Stringify the sorted object back to JSONC format (preserving comments) + const sortedJsonC = commentJson.stringify(sortedObject, null, 2); - // Write the sorted content back to the file - fs.writeFileSync(filePath, sortedJsonC, "utf-8"); + // Write the sorted content back to the file + fs.writeFileSync(filePath, sortedJsonC, "utf-8"); + }); console.log("JSONC file keys sorted successfully."); } From 2183a0a5b3ddd2b524257daded544aa845354990 Mon Sep 17 00:00:00 2001 From: Bashamega Date: Sat, 5 Apr 2025 13:38:00 +0200 Subject: [PATCH 05/10] generate --- inputfiles/addedTypes.jsonc | 2973 ++++++------ inputfiles/overridingTypes.jsonc | 7701 +++++++++++++++--------------- inputfiles/removedTypes.jsonc | 1688 ++++--- 3 files changed, 6144 insertions(+), 6218 deletions(-) diff --git a/inputfiles/addedTypes.jsonc b/inputfiles/addedTypes.jsonc index 18f695f4f..fcd149a00 100644 --- a/inputfiles/addedTypes.jsonc +++ b/inputfiles/addedTypes.jsonc @@ -1,1614 +1,1573 @@ { - "mixins": { - "mixin": { - "AbstractWorker": { - "events": { - "event": [ - { - "name": "error", - "type": "ErrorEvent" - } - ] - } + "callbackInterfaces": { + "interface": {} + }, + "dictionaries": { + "dictionary": { + "KeyboardEventInit": { + "members": { + "member": { + "charCode": { + "deprecated": true + }, + "keyCode": { + "deprecated": true + } + } + } + }, + "MemoryDescriptor": { + "members": { + "member": { + "shared": { + "name": "shared", + "type": "boolean" + } + } + } + }, + "ReadableStreamReadDoneResult": { + "members": { + "member": { + "done": { + "name": "done", + "overrideType": "true", + "required": true + }, + "value": { + "name": "value", + "overrideType": "T | undefined", + "required": true + } + } + }, + "name": "ReadableStreamReadDoneResult", + "typeParameters": [ + { + "name": "T" + } + ] + }, + "ReadableStreamReadValueResult": { + "members": { + "member": { + "done": { + "name": "done", + "overrideType": "false", + "required": true + }, + "value": { + "name": "value", + "overrideType": "T", + "required": true + } + } + }, + "name": "ReadableStreamReadValueResult", + "typeParameters": [ + { + "name": "T" + } + ] + }, + "UnderlyingByteSource": { + "members": { + "member": { + "autoAllocateChunkSize": { + "name": "autoAllocateChunkSize", + "type": "unsigned long long" + }, + "cancel": { + "name": "cancel", + "type": "UnderlyingSourceCancelCallback" + }, + "pull": { + "name": "pull", + "overrideType": "(controller: ReadableByteStreamController) => void | PromiseLike" + }, + "start": { + "name": "start", + "overrideType": "(controller: ReadableByteStreamController) => any" + }, + "type": { + "name": "type", + "overrideType": "\"bytes\"", + "required": true + } + } + }, + "name": "UnderlyingByteSource" + }, + "UnderlyingDefaultSource": { + "members": { + "member": { + "cancel": { + "name": "cancel", + "type": "UnderlyingSourceCancelCallback" + }, + "pull": { + "name": "pull", + "overrideType": "(controller: ReadableStreamDefaultController) => void | PromiseLike" + }, + "start": { + "name": "start", + "overrideType": "(controller: ReadableStreamDefaultController) => any" + }, + "type": { + "name": "type", + "type": "undefined" + } + } + }, + "name": "UnderlyingDefaultSource", + "typeParameters": [ + { + "name": "R", + "default": "any" + } + ] + }, + "ValueTypeMap": { + "exposed": "Window Worker Worklet", + "legacyNamespace": "WebAssembly", + "members": { + "member": { + "anyfunc": { + "name": "anyfunc", + "overrideType": "Function", + "required": 1 + }, + "externref": { + "name": "externref", + "overrideType": "any", + "required": 1 + }, + "f32": { + "name": "f32", + "overrideType": "number", + "required": 1 + }, + "f64": { + "name": "f64", + "overrideType": "number", + "required": 1 + }, + "i32": { + "name": "i32", + "overrideType": "number", + "required": 1 + }, + "i64": { + "name": "i64", + "overrideType": "bigint", + "required": 1 + }, + "v128": { + "name": "v128", + "overrideType": "never", + "required": 1 + } + } + }, + "name": "ValueTypeMap" + } + } + }, + "enums": { + "enum": { + "AutoFillAddressKind": { + "name": "AutoFillAddressKind", + "value": [ + "shipping", + "billing" + ] + }, + "AutoFillBase": { + "name": "AutoFillBase", + "value": [ + "off", + "on", + "" + ] + }, + "AutoFillContactField": { + "name": "AutoFillContactField", + "value": [ + "tel", + "tel-country-code", + "tel-national", + "tel-area-code", + "tel-local", + "tel-local-prefix", + "tel-local-suffix", + "tel-extension", + "email" + ] + }, + "AutoFillContactKind": { + "name": "AutoFillContactKind", + "value": [ + "home", + "work", + "mobile" + ] + }, + "AutoFillCredentialField": { + "name": "AutoFillCredentialField", + "value": [ + "webauthn" + ] + }, + "AutoFillNormalField": { + "name": "AutoFillNormalField", + "value": [ + "name", + "honorific-prefix", + "given-name", + "additional-name", + "family-name", + "honorific-suffix", + "username", + "new-password", + "current-password", + "one-time-code", + "organization", + "street-address", + "address-line1", + "address-line2", + "address-line3", + "address-level4", + "address-level3", + "address-level2", + "address-level1", + "country", + "country-name", + "postal-code", + "cc-name", + "cc-given-name", + "cc-family-name", + "cc-number", + "cc-exp", + "cc-exp-month", + "cc-exp-year", + "cc-csc", + "cc-type", + "transaction-currency", + "transaction-amount", + "bday-day", + "bday-month", + "bday-year" + ] + }, + "ClientType": { + "name": "ClientTypes" + }, + "FontDisplay": { + "name": "FontDisplay", + "value": [ + "auto", + "block", + "swap", + "fallback", + "optional" + ] + }, + "GlobalCompositeOperation": { + "name": "GlobalCompositeOperation", + "value": [ + "source-over", + "source-in", + "source-out", + "source-atop", + "destination-over", + "destination-in", + "destination-out", + "destination-atop", + "lighter", + "copy", + "xor", + "multiply", + "screen", + "overlay", + "darken", + "lighten", + "color-dodge", + "color-burn", + "hard-light", + "soft-light", + "difference", + "exclusion", + "hue", + "saturation", + "color", + "luminosity" + ] + }, + "InsertPosition": { + "name": "InsertPosition", + "value": [ + "beforebegin", + "beforeend", + "afterbegin", + "afterend" + ] + }, + "PermissionName": { + "name": "PermissionName", + "value": [ + "camera", + "geolocation", + "microphone", + "midi", + "notifications", + "persistent-storage", + "push", + "screen-wake-lock", + "storage-access" + ] + }, + "RTCStatsIceCandidatePairState": { + "value": [ + "inprogress" + ] + } + } + }, + "interfaces": { + "interface": { + "Attr": { + "name": "Attr", + "properties": { + "property": { + "ownerDocument": { + "name": "ownerDocument", + "readonly": true, + "type": "Document" + } + } + } + }, + "AudioWorkletProcessorImpl": { + "exposed": "AudioWorklet", + "extends": "AudioWorkletProcessor", + "methods": { + "method": { + "process": { + "name": "process", + "overrideSignatures": [ + "process(inputs: Float32Array[][], outputs: Float32Array[][], parameters: Record): boolean" + ] + } + } + }, + "name": "AudioWorkletProcessorImpl", + "noInterfaceObject": true + }, + "BroadcastChannel": { + "events": { + "event": [ + { + "name": "message", + "type": "MessageEvent" }, - "DocumentAndElementEventHandlers": { - "events": { - "event": [ - { - "name": "copy", - "type": "ClipboardEvent" - }, - { - "name": "cut", - "type": "ClipboardEvent" - }, - { - "name": "paste", - "type": "ClipboardEvent" - } - ] - } + { + "name": "messageerror", + "type": "MessageEvent" + } + ] + } + }, + "CSSStyleDeclaration": { + "name": "CSSStyleDeclaration", + "properties": { + "property": { + "imageOrientation": { + "deprecated": true + }, + "wordWrap": { + "deprecated": true + } + } + } + }, + "CharacterData": { + "name": "CharacterData", + "properties": { + "property": { + "ownerDocument": { + "name": "ownerDocument", + "readonly": true, + "type": "Document" + } + } + } + }, + "ClientRect": { + "deprecated": true, + "exposed": "Window", + "extends": "DOMRect", + "name": "ClientRect", + "noInterfaceObject": true + }, + "CompileError": { + "constructor": { + "overrideSignatures": [ + "new(message?: string): CompileError", + "(message?: string): CompileError" + ] + }, + "extends": "Error", + "legacyNamespace": "WebAssembly", + "name": "CompileError" + }, + "DOMMatrixReadOnly": { + "methods": { + "method": { + "scaleNonUniform": { + "deprecated": true + } + } + } + }, + "DeviceMotionEventAcceleration": { + "noInterfaceObject": true + }, + "DeviceMotionEventRotationRate": { + "noInterfaceObject": true + }, + "Document": { + "events": { + "event": [ + { + "name": "DOMContentLoaded", + "type": "Event" + } + ] + }, + "methods": { + "method": { + "caretRangeFromPoint": { + "deprecated": true, + "name": "caretRangeFromPoint", + "overrideSignatures": [ + "caretRangeFromPoint(x: number, y: number): Range | null" + ] }, - "DocumentOrShadowRoot": { - // Manually moved from Document - // See https://github.com/w3c/csswg-drafts/issues/5886 and https://github.com/w3c/csswg-drafts/issues/556 - "methods": { - "method": { - "elementFromPoint": { - "name": "elementFromPoint", - "overrideSignatures": [ - "elementFromPoint(x: number, y: number): Element | null" - ] - }, - "elementsFromPoint": { - "name": "elementsFromPoint", - "overrideSignatures": [ - "elementsFromPoint(x: number, y: number): Element[]" - ] - } + "createElementNS": { + "additionalSignatures": [ + "createElementNS(namespaceURI: \"http://www.w3.org/1999/xhtml\", qualifiedName: string): HTMLElement", + "createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: K): SVGElementTagNameMap[K]", + "createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: string): SVGElement", + "createElementNS(namespaceURI: \"http://www.w3.org/1998/Math/MathML\", qualifiedName: K): MathMLElementTagNameMap[K]", + "createElementNS(namespaceURI: \"http://www.w3.org/1998/Math/MathML\", qualifiedName: string): MathMLElement", + "createElementNS(namespaceURI: string | null, qualifiedName: string, options?: ElementCreationOptions): Element" + ], + "name": "createElementNS" + } + } + }, + "properties": { + "property": { + "ownerDocument": { + "name": "ownerDocument", + "overrideType": "null", + "readonly": true + } + } + } + }, + "DocumentType": { + "name": "DocumentType", + "properties": { + "property": { + "ownerDocument": { + "name": "ownerDocument", + "readonly": true, + "type": "Document" + } + } + } + }, + "Element": { + "methods": { + "method": { + "closest": { + "additionalSignatures": [ + "closest(selector: K): HTMLElementTagNameMap[K] | null", + "closest(selector: K): SVGElementTagNameMap[K] | null", + "closest(selector: K): MathMLElementTagNameMap[K] | null" + ], + "signature": { + "0": { + "overrideType": "E", + "typeParameters": [ + { + "name": "E", + "extends": "Element", + "default": "Element" } + ] + } + } + }, + "getElementsByClassName": { + "name": "getElementsByClassName", + "signature": { + "0": { + "overrideType": "HTMLCollectionOf" } + } }, - "GlobalEventHandlers": { - "events": { - "event": [ - { - "name": "abort", - "type": "UIEvent" - }, - { - "name": "auxclick", - "type": "MouseEvent" - }, - { - "name": "beforeinput", - "type": "InputEvent" - }, - { - "name": "blur", - "type": "FocusEvent" - }, - { - "name": "click", - "type": "MouseEvent" - }, - { - "name": "compositionstart", - "type": "CompositionEvent" - }, - { - "name": "compositionupdate", - "type": "CompositionEvent" - }, - { - "name": "compositionend", - "type": "CompositionEvent" - }, - { - "name": "drag", - "type": "DragEvent" - }, - { - "name": "dragend", - "type": "DragEvent" - }, - { - "name": "dragenter", - "type": "DragEvent" - }, - { - "name": "dragleave", - "type": "DragEvent" - }, - { - "name": "dragover", - "type": "DragEvent" - }, - { - "name": "dragstart", - "type": "DragEvent" - }, - { - "name": "drop", - "type": "DragEvent" - }, - { - "name": "error", - "type": "ErrorEvent" - }, - { - "name": "focus", - "type": "FocusEvent" - }, - { - "name": "focusin", - "type": "FocusEvent" - }, - { - "name": "focusout", - "type": "FocusEvent" - }, - { - "name": "formdata", - "type": "FormDataEvent" - }, - { - "name": "keydown", - "type": "KeyboardEvent" - }, - { - "name": "keypress", - "type": "KeyboardEvent" - }, - { - "name": "keyup", - "type": "KeyboardEvent" - }, - { - "name": "mousedown", - "type": "MouseEvent" - }, - { - "name": "mouseenter", - "type": "MouseEvent" - }, - { - "name": "mouseleave", - "type": "MouseEvent" - }, - { - "name": "mousemove", - "type": "MouseEvent" - }, - { - "name": "mouseout", - "type": "MouseEvent" - }, - { - "name": "mouseover", - "type": "MouseEvent" - }, - { - "name": "mouseup", - "type": "MouseEvent" - }, - { - "name": "progress", - "type": "ProgressEvent" - }, - { - "name": "resize", - "type": "UIEvent" - }, - { - "name": "wheel", - "type": "WheelEvent" - }, - { - "name": "securitypolicyviolation", - "type": "SecurityPolicyViolationEvent" - }, - { - "name": "submit", - "type": "SubmitEvent" - }, - { - "name": "dblclick", - "type": "MouseEvent" - }, - { - "name": "contextmenu", - "type": "MouseEvent" - } - ] + "insertAdjacentElement": { + "signature": { + "0": { + "param": [ + { + "name": "where", + "type": "InsertPosition" + } + ] } + } }, - "WebGLRenderingContextBase": { - "properties": { - "property": { - "canvas": { - "exposed": "Window" - } + "insertAdjacentHTML": { + "signature": { + "0": { + "param": [ + { + "name": "position", + "type": "InsertPosition" } + ] } + } }, - "WindowEventHandlers": { - "events": { - "event": [ - { - "name": "beforeunload", - "type": "BeforeUnloadEvent" - }, - { - "name": "gamepadconnected", - "type": "GamepadEvent" - }, - { - "name": "gamepaddisconnected", - "type": "GamepadEvent" - }, - { - "name": "hashchange", - "type": "HashChangeEvent" - }, - { - "name": "message", - "type": "MessageEvent" - }, - { - "name": "messageerror", - "type": "MessageEvent" - }, - { - "name": "pagehide", - "type": "PageTransitionEvent" - }, - { - "name": "pageshow", - "type": "PageTransitionEvent" - }, - { - "name": "popstate", - "type": "PopStateEvent" - }, - { - "name": "storage", - "type": "StorageEvent" - }, - { - "name": "unhandledrejection", - "type": "PromiseRejectionEvent" - }, - { - "name": "rejectionhandled", - "type": "PromiseRejectionEvent" - } - ] + "insertAdjacentText": { + "signature": { + "0": { + "param": [ + { + "name": "where", + "type": "InsertPosition" + } + ] } + } } + } + }, + "name": "Element", + "properties": { + "property": { + "ownerDocument": { + "name": "ownerDocument", + "readonly": true, + "type": "Document" + } + } } - }, - "callbackInterfaces": { - "interface": {} - }, - "enums": { - "enum": { - "InsertPosition": { - "name": "InsertPosition", - "value": [ - "beforebegin", - "beforeend", - "afterbegin", - "afterend" + }, + "EventListener": { + "methods": { + "method": { + "callable": { + "overrideSignatures": [ + "(evt: Event): void" ] - }, - "FontDisplay": { - "name": "FontDisplay", - // https://w3c.github.io/csswg-drafts/css-fonts-4/#font-display-desc - "value": [ - "auto", - "block", - "swap", - "fallback", - "optional" + } + } + }, + "name": "EventListener", + "noInterfaceObject": true + }, + "EventListenerObject": { + "methods": { + "method": { + "handleEvent": { + "overrideSignatures": [ + "handleEvent(object: Event): void" ] - }, - "ClientType": { - "name": "ClientTypes" - }, - "RTCStatsIceCandidatePairState": { - "value": [ - "inprogress" - ] - }, - "GlobalCompositeOperation": { - "name": "GlobalCompositeOperation", - "value": [ - "source-over", - "source-in", - "source-out", - "source-atop", - "destination-over", - "destination-in", - "destination-out", - "destination-atop", - "lighter", - "copy", - "xor", - "multiply", - "screen", - "overlay", - "darken", - "lighten", - "color-dodge", - "color-burn", - "hard-light", - "soft-light", - "difference", - "exclusion", - "hue", - "saturation", - "color", - "luminosity" - ] - }, - "PermissionName": { - "name": "PermissionName", - // This is a subset of the permissions defined in the spec: - // https://w3c.github.io/powerful-features-registry/#registry-table-of-powerful-features - // Please add a feature only when it's supported by multiple engines. - "value": [ - // Full support: https://developer.mozilla.org/en-US/docs/Web/API/Permissions_API#browser_compatibility - "camera", - // Full support: https://developer.mozilla.org/en-US/docs/Web/API/Geolocation_API#browser_compatibility - "geolocation", - // Full support: https://developer.mozilla.org/en-US/docs/Web/API/Permissions_API#browser_compatibility - "microphone", - // Gecko and Blink: https://developer.mozilla.org/en-US/docs/Web/API/Web_MIDI_API#browser_compatibility - "midi", - // Full support: https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API#browser_compatibility - "notifications", - // Gecko and Blink: https://developer.mozilla.org/en-US/docs/Web/API/Storage_API#browser_compatibility - "persistent-storage", - // Full support: https://developer.mozilla.org/en-US/docs/Web/API/Push_API#browser_compatibility - "push", - // Full support: https://developer.mozilla.org/en-US/docs/Web/API/Screen_Wake_Lock_API#browser_compatibility - "screen-wake-lock", - // Full support: https://developer.mozilla.org/en-US/docs/Web/API/Storage_Access_API#browser_compatibility - "storage-access" - ] - }, - "AutoFillBase": { - "name": "AutoFillBase", - "value": [ - // Off - "off", - // Automatic - "on", - "" - ] - }, - "AutoFillAddressKind": { - "name": "AutoFillAddressKind", - "value": [ - "shipping", - "billing" - ] - }, - "AutoFillNormalField": { - "name": "AutoFillNormalField", - "value": [ - "name", - "honorific-prefix", - "given-name", - "additional-name", - "family-name", - "honorific-suffix", - - "username", - "new-password", - "current-password", - // Supported in iOS Safari too even though WPT tests - // for Safari currently fail as of 2023-06. - "one-time-code", - - "organization", - "street-address", - "address-line1", - "address-line2", - "address-line3", - "address-level4", - "address-level3", - "address-level2", - "address-level1", - "country", - "country-name", - "postal-code", - - "cc-name", - "cc-given-name", - "cc-family-name", - "cc-number", - "cc-exp", - "cc-exp-month", - "cc-exp-year", - "cc-csc", - "cc-type", - "transaction-currency", - "transaction-amount", - - "bday-day", - "bday-month", - "bday-year" - ] - }, - "AutoFillContactKind": { - "name": "AutoFillContactKind", - "value": [ - "home", - "work", - "mobile" - ] - }, - "AutoFillContactField": { - "name": "AutoFillContactField", - "value": [ - "tel", - "tel-country-code", - "tel-national", - "tel-area-code", - "tel-local", - "tel-local-prefix", - "tel-local-suffix", - "tel-extension", - "email" - ] - }, - "AutoFillCredentialField": { - "name": "AutoFillCredentialField", - "value": [ - "webauthn" - ] } + } + }, + "name": "EventListenerObject", + "noInterfaceObject": true + }, + "EventSource": { + "events": { + "event": [ + { + "name": "message", + "type": "MessageEvent" + } + ] } - }, - "interfaces": { - "interface": { - // ImportMeta is not a true DOM interface, but we are forced to declare it as one in order to emit method definitions. - // We cannot define methods as dictionary properties with function types, - // as this would cause conflicts with ImportMeta method overrides in places like @types/node. - "ImportMeta": { - "name": "ImportMeta", - "exposed": "Window Worker", - "noInterfaceObject": true, - "properties": { - "property": { - "url": { - "name": "url", - "type": "DOMString" - } - } - }, - "methods": { - "method": { - "resolve": { - "name": "resolve", - "signature": [ - { - "param": [ - { - "name": "specifier", - "type": "DOMString" - } - ], - "type": "DOMString" - } - ] - } - } - } - }, - "AudioWorkletProcessorImpl": { - "name": "AudioWorkletProcessorImpl", - "extends": "AudioWorkletProcessor", - "methods": { - "method": { - "process": { - "name": "process", - "overrideSignatures": [ - "process(inputs: Float32Array[][], outputs: Float32Array[][], parameters: Record): boolean" - ] - } + }, + "FileSystemDirectoryHandle": { + "properties": { + "property": { + "kind": { + "name": "kind", + "overrideType": "\"directory\"", + "readonly": true + } + } + } + }, + "FileSystemFileHandle": { + "properties": { + "property": { + "kind": { + "name": "kind", + "overrideType": "\"file\"", + "readonly": true + } + } + } + }, + "HTMLBodyElement": { + "properties": { + "property": { + "onorientationchange": { + "deprecated": true + } + } + } + }, + "HTMLCollectionOf": { + "exposed": "Window", + "extends": "HTMLCollection", + "methods": { + "method": { + "item": { + "getter": true, + "name": "item", + "signature": [ + { + "nullable": true, + "overrideType": "T", + "param": [ + { + "name": "index", + "type": "unsigned long" } - }, - "exposed": "AudioWorklet", - "noInterfaceObject": true - }, - "BroadcastChannel": { - "events": { - "event": [ - { - "name": "message", - "type": "MessageEvent" - }, - { - "name": "messageerror", - "type": "MessageEvent" - } - ] + ] } + ], + "specs": "html5" }, - "CompileError": { - "name": "CompileError", - "extends": "Error", - "legacyNamespace": "WebAssembly", - "constructor": { - "overrideSignatures": [ - "new(message?: string): CompileError", - "(message?: string): CompileError" - ] - } + "namedItem": { + "name": "namedItem", + "overrideSignatures": [ + "namedItem(name: string): T | null" + ] + } + } + }, + "name": "HTMLCollectionOf", + "noInterfaceObject": true, + "typeParameters": [ + { + "name": "T", + "extends": "Element" + } + ] + }, + "HTMLDocument": { + "deprecated": "use Document", + "exposed": "Window", + "extends": "Document", + "name": "HTMLDocument" + }, + "HTMLIFrameElement": { + "name": "HTMLIFrameElement", + "properties": { + "property": { + "loading": { + "name": "loading", + "overrideType": "\"eager\" | \"lazy\"" + }, + "referrerPolicy": { + "type": "ReferrerPolicy" + } + } + } + }, + "HTMLImageElement": { + "name": "HTMLImageElement", + "properties": { + "property": { + "decoding": { + "name": "decoding", + "overrideType": "\"async\" | \"sync\" | \"auto\"" + }, + "loading": { + "overrideType": "\"eager\" | \"lazy\"" + } + } + } + }, + "HTMLInputElement": { + "properties": { + "property": { + "labels": { + "overrideType": "NodeListOf" + } + } + } + }, + "HTMLLinkElement": { + "properties": { + "property": { + "charset": { + "deprecated": true + }, + "rev": { + "deprecated": true + }, + "target": { + "deprecated": true + } + } + } + }, + "HTMLMediaElement": { + "events": { + "event": [ + { + "name": "encrypted", + "type": "MediaEncryptedEvent" + } + ] + } + }, + "HTMLTableDataCellElement": { + "deprecated": "prefer HTMLTableCellElement", + "exposed": "Window", + "extends": "HTMLTableCellElement", + "name": "HTMLTableDataCellElement", + "noInterfaceObject": true + }, + "HTMLTableHeaderCellElement": { + "deprecated": "prefer HTMLTableCellElement", + "exposed": "Window", + "extends": "HTMLTableCellElement", + "name": "HTMLTableHeaderCellElement", + "noInterfaceObject": true + }, + "IDBDatabase": { + "events": { + "event": [ + { + "name": "versionchange", + "type": "IDBVersionChangeEvent" + } + ] + }, + "name": "IDBDatabase" + }, + "IDBOpenDBRequest": { + "events": { + "event": [ + { + "name": "upgradeneeded", + "type": "IDBVersionChangeEvent" }, - "DeviceMotionEventAcceleration": { - "noInterfaceObject": true - }, - "DeviceMotionEventRotationRate": { - "noInterfaceObject": true - }, - "HTMLImageElement": { - "name": "HTMLImageElement", - "properties": { - "property": { - "decoding": { - "name": "decoding", - "overrideType": "\"async\" | \"sync\" | \"auto\"" - }, - "loading": { - "overrideType": "\"eager\" | \"lazy\"" - } + { + "name": "blocked", + "type": "IDBVersionChangeEvent" + } + ] + }, + "extends": "IDBRequest", + "name": "IDBOpenDBRequest" + }, + "ImportMeta": { + "exposed": "Window Worker", + "methods": { + "method": { + "resolve": { + "name": "resolve", + "signature": [ + { + "param": [ + { + "name": "specifier", + "type": "DOMString" } + ], + "type": "DOMString" } + ] + } + } + }, + "name": "ImportMeta", + "noInterfaceObject": true, + "properties": { + "property": { + "url": { + "name": "url", + "type": "DOMString" + } + } + } + }, + "KHR_parallel_shader_compile": { + "overrideExposed": "Window Worker" + }, + "LinkError": { + "constructor": { + "overrideSignatures": [ + "new(message?: string): LinkError", + "(message?: string): LinkError" + ] + }, + "extends": "Error", + "legacyNamespace": "WebAssembly", + "name": "LinkError" + }, + "MediaRecorder": { + "events": { + "event": [ + { + "name": "dataavailable", + "type": "BlobEvent" + } + ] + } + }, + "MediaStream": { + "events": { + "event": [ + { + "name": "addtrack", + "type": "MediaStreamTrackEvent" }, - "HTMLTableDataCellElement": { - "name": "HTMLTableDataCellElement", - "extends": "HTMLTableCellElement", - "noInterfaceObject": true, - "deprecated": "prefer HTMLTableCellElement", - "exposed": "Window" - }, - "HTMLTableHeaderCellElement": { - "name": "HTMLTableHeaderCellElement", - "extends": "HTMLTableCellElement", - "noInterfaceObject": true, - "deprecated": "prefer HTMLTableCellElement", - "exposed": "Window" - }, - "HTMLDocument": { - "name": "HTMLDocument", - "extends": "Document", - "deprecated": "use Document", - "exposed": "Window" - }, - "HTMLMediaElement": { - "events": { - "event": [ - { - "name": "encrypted", - "type": "MediaEncryptedEvent" - } - ] - } + { + "name": "removetrack", + "type": "MediaStreamTrackEvent" + } + ] + } + }, + "Navigator": { + "name": "Navigator", + "properties": { + "property": { + "doNotTrack": { + "name": "doNotTrack", + "nullable": true, + "readonly": true, + "type": "DOMString" + } + } + } + }, + "NodeListOf": { + "exposed": "Window", + "extends": "NodeList", + "iterator": { + "kind": "iterable", + "type": [ + { + "overrideType": "TNode" + } + ] + }, + "methods": { + "method": { + "item": { + "name": "item", + "overrideSignatures": [ + "item(index: number): TNode" + ] + } + } + }, + "name": "NodeListOf", + "noInterfaceObject": true, + "overrideIndexSignatures": [ + "[index: number]: TNode" + ], + "typeParameters": [ + { + "name": "TNode", + "extends": "Node" + } + ] + }, + "OVR_multiview2": { + "overrideExposed": "Window Worker" + }, + "ProcessingInstruction": { + "name": "ProcessingInstruction", + "properties": { + "property": { + "ownerDocument": { + "name": "ownerDocument", + "readonly": true, + "type": "Document" + } + } + } + }, + "ProgressEvent": { + "properties": { + "property": { + "target": { + "name": "target", + "nullable": true, + "overrideType": "T", + "readonly": true + } + } + }, + "typeParameters": [ + { + "name": "T", + "extends": "EventTarget", + "default": "EventTarget" + } + ] + }, + "RTCDTMFSender": { + "events": { + "event": [ + { + "name": "tonechange", + "type": "RTCDTMFToneChangeEvent" + } + ] + } + }, + "RTCEncodedAudioFrame": { + "properties": { + "property": { + "timestamp": { + "mdnUrl": "https://developer.mozilla.org/docs/Web/API/RTCEncodedAudioFrame/timestamp", + "name": "timestamp", + "readonly": true, + "type": "long long" + } + } + } + }, + "RTCEncodedVideoFrame": { + "properties": { + "property": { + "timestamp": { + "mdnUrl": "https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame/timestamp", + "name": "timestamp", + "readonly": true, + "type": "long long" + } + } + } + }, + "RuntimeError": { + "constructor": { + "overrideSignatures": [ + "new(message?: string): RuntimeError", + "(message?: string): RuntimeError" + ] + }, + "extends": "Error", + "legacyNamespace": "WebAssembly", + "name": "RuntimeError" + }, + "SVGStyleElement": { + "properties": { + "property": { + "disabled": { + "name": "disabled", + "type": "boolean" + } + } + } + }, + "SharedWorkerGlobalScope": { + "events": { + "event": [ + { + "name": "connect", + "type": "MessageEvent" + } + ] + } + }, + "SpeechSynthesisUtterance": { + "events": { + "event": [ + { + "name": "start", + "type": "SpeechSynthesisEvent" }, - "CSSStyleDeclaration": { - "name": "CSSStyleDeclaration", - "properties": { - "property": { - "imageOrientation": { - "deprecated": true - }, - "wordWrap": { - "deprecated": true - } - } - } + { + "name": "end", + "type": "SpeechSynthesisEvent" }, - "Window": { - "name": "Window", - "methods": { - "method": { - "captureEvents": { - "deprecated": true - } - } - }, - "overrideIndexSignatures": [ - "[index: number]: Window" - ], - "events": { - "event": [ - { - "name": "devicemotion", - "type": "DeviceMotionEvent" - }, - { - "name": "deviceorientation", - "type": "DeviceOrientationEvent" - }, - { - "name": "deviceorientationabsolute", - "type": "DeviceOrientationEvent" - }, - { - "name": "gamepadconnected", - "type": "GamepadEvent" - }, - { - "name": "gamepaddisconnected", - "type": "GamepadEvent" - }, - { - "name": "DOMContentLoaded", - "type": "Event" - } - ] - } + { + "name": "error", + "type": "SpeechSynthesisErrorEvent" }, - "URLSearchParams": { - "name": "URLSearchParams", - "constructor": { - "signature": { - "0": { - "param": [ - { - "name": "init", - "additionalTypes": ["URLSearchParams"] - } - ] - } - } - } + { + "name": "pause", + "type": "SpeechSynthesisEvent" }, - "NodeListOf": { - "name": "NodeListOf", - "typeParameters": [ - { - "name": "TNode", - "extends": "Node" - } - ], - "exposed": "Window", - "extends": "NodeList", - "methods": { - "method": { - "item": { - "name": "item", - "overrideSignatures": [ - "item(index: number): TNode" - ] - } - } - }, - "noInterfaceObject": true, - "overrideIndexSignatures": [ - "[index: number]: TNode" - ], - "iterator": { - "kind": "iterable", - "type": [ - { - "overrideType": "TNode" - } - ] - } + { + "name": "resume", + "type": "SpeechSynthesisEvent" }, - "HTMLCollectionOf": { - "name": "HTMLCollectionOf", - "typeParameters": [ - { - "name": "T", - "extends": "Element" - } - ], - "exposed": "Window", - "extends": "HTMLCollection", - "methods": { - "method": { - "item": { - "getter": true, - "signature": [ - { - "nullable": true, - "overrideType": "T", - "param": [ - { - "name": "index", - "type": "unsigned long" - } - ] - } - ], - "specs": "html5", - "name": "item" - }, - "namedItem": { - "name": "namedItem", - "overrideSignatures": [ - "namedItem(name: string): T | null" - ] - } - } - }, - "noInterfaceObject": true - }, - "Element": { - "name": "Element", - "methods": { - "method": { - "getElementsByClassName": { - "name": "getElementsByClassName", - "signature": { - "0": { - "overrideType": "HTMLCollectionOf" - } - } - }, - "closest": { - "additionalSignatures": [ - "closest(selector: K): HTMLElementTagNameMap[K] | null", - "closest(selector: K): SVGElementTagNameMap[K] | null", - "closest(selector: K): MathMLElementTagNameMap[K] | null" - ], - "signature": { - "0": { - "typeParameters": [ - { - "name": "E", - "extends": "Element", - "default": "Element" - } - ], - "overrideType": "E" - } - } - }, - "insertAdjacentElement": { - "signature": { - "0": { - "param": [ - { - "name": "where", - "type": "InsertPosition" - } - ] - } - } - }, - "insertAdjacentHTML": { - "signature": { - "0": { - "param": [ - { - "name": "position", - "type": "InsertPosition" - } - ] - } - } - }, - "insertAdjacentText": { - "signature": { - "0": { - "param": [ - { - "name": "where", - "type": "InsertPosition" - } - ] - } - } - } - } - }, - "properties": { - "property": { - "ownerDocument": { - "name": "ownerDocument", - "readonly": true, - "type": "Document" - } - } - } + { + "name": "mark", + "type": "SpeechSynthesisEvent" }, - // This is used in many DT libraries, via ckeditor - "ClientRect": { - "name": "ClientRect", - "exposed": "Window", - "deprecated": true, - "extends": "DOMRect", - "noInterfaceObject": true - }, - /* - Keeping EventListener and EventListenerObject isn't the most elegant way to handle - the event listeners, but we need to keep the EventListener as an extendable interface - for libraries like angular. - */ - "EventListener": { - "name": "EventListener", - "noInterfaceObject": true, - "methods": { - "method": { - // This is a hack to add a call signature, but I think it's reasonable - // as it means we don't have to add a call signatures section to the - // emitter for this one case. - "callable": { - "overrideSignatures": [ - "(evt: Event): void" - ] - } - } - } + { + "name": "boundary", + "type": "SpeechSynthesisEvent" + } + ] + } + }, + "StyleMedia": { + "deprecated": true, + "exposed": "Window", + "methods": { + "method": { + "matchMedium": { + "name": "matchMedium", + "overrideSignatures": [ + "matchMedium(mediaquery: string): boolean" + ] + } + } + }, + "name": "StyleMedia", + "noInterfaceObject": true, + "properties": { + "property": { + "type": { + "name": "type", + "type": "DOMString" + } + } + } + }, + "TextTrackList": { + "events": { + "event": [ + { + "name": "addtrack", + "type": "TrackEvent" }, - "EventListenerObject": { - "name": "EventListenerObject", - "noInterfaceObject": true, - "methods": { - "method": { - "handleEvent": { - "overrideSignatures": [ - "handleEvent(object: Event): void" - ] - } - } + { + "name": "removetrack", + "type": "TrackEvent" + } + ] + } + }, + "UIEvent": { + "properties": { + "property": { + "which": { + "deprecated": true + } + } + } + }, + "URLSearchParams": { + "constructor": { + "signature": { + "0": { + "param": [ + { + "name": "init", + "additionalTypes": [ + "URLSearchParams" + ] } + ] + } + } + }, + "name": "URLSearchParams" + }, + "WebSocket": { + "events": { + "event": [ + { + "name": "close", + "type": "CloseEvent" + } + ] + } + }, + "Window": { + "events": { + "event": [ + { + "name": "devicemotion", + "type": "DeviceMotionEvent" }, - "Document": { - "methods": { - "method": { - "createElementNS": { - "name": "createElementNS", - "additionalSignatures": [ - "createElementNS(namespaceURI: \"http://www.w3.org/1999/xhtml\", qualifiedName: string): HTMLElement", - "createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: K): SVGElementTagNameMap[K]", - "createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: string): SVGElement", - "createElementNS(namespaceURI: \"http://www.w3.org/1998/Math/MathML\", qualifiedName: K): MathMLElementTagNameMap[K]", - "createElementNS(namespaceURI: \"http://www.w3.org/1998/Math/MathML\", qualifiedName: string): MathMLElement", - "createElementNS(namespaceURI: string | null, qualifiedName: string, options?: ElementCreationOptions): Element" - ] - }, - "caretRangeFromPoint": { - "name": "caretRangeFromPoint", - "deprecated": true, - "overrideSignatures": [ - "caretRangeFromPoint(x: number, y: number): Range | null" - ] - } - } - }, - "properties": { - "property": { - "ownerDocument": { - "name": "ownerDocument", - "readonly": true, - "overrideType": "null" - } - } - }, - "events": { - "event": [ - { - "name": "DOMContentLoaded", - "type": "Event" - } - ] - } + { + "name": "deviceorientation", + "type": "DeviceOrientationEvent" }, - // This is used in the React d.ts files, and not including - // it would force an update for anyone using React. - "StyleMedia": { - "name": "StyleMedia", - "exposed": "Window", - "noInterfaceObject": true, - "deprecated": true, - "properties": { - "property": { - "type": { - "name": "type", - "type": "DOMString" - } - } - }, - "methods": { - "method": { - "matchMedium": { - "name": "matchMedium", - "overrideSignatures": [ - "matchMedium(mediaquery: string): boolean" - ] - } - } - } + { + "name": "deviceorientationabsolute", + "type": "DeviceOrientationEvent" }, - "Navigator": { - "name": "Navigator", - "properties": { - "property": { - "doNotTrack": { - "name": "doNotTrack", - "readonly": true, - "nullable": true, - "type": "DOMString" - } - } - } + { + "name": "gamepadconnected", + "type": "GamepadEvent" }, - "HTMLIFrameElement": { - "name": "HTMLIFrameElement", - "properties": { - "property": { - "referrerPolicy": { - "type": "ReferrerPolicy" - }, - "loading": { - "name": "loading", - "overrideType": "\"eager\" | \"lazy\"" - } - } - } + { + "name": "gamepaddisconnected", + "type": "GamepadEvent" }, - "IDBDatabase": { - "name": "IDBDatabase", - "events": { - "event": [ - { - "name": "versionchange", - "type": "IDBVersionChangeEvent" - } - ] - } + { + "name": "DOMContentLoaded", + "type": "Event" + } + ] + }, + "methods": { + "method": { + "captureEvents": { + "deprecated": true + } + } + }, + "name": "Window", + "overrideIndexSignatures": [ + "[index: number]: Window" + ] + }, + "WorkerGlobalScope": { + "events": { + "event": [ + { + "name": "rejectionhandled", + "type": "PromiseRejectionEvent" }, - "IDBOpenDBRequest": { - "name": "IDBOpenDBRequest", - "extends": "IDBRequest", - "events": { - "event": [ - { - "name": "upgradeneeded", - "type": "IDBVersionChangeEvent" - }, - { - "name": "blocked", - "type": "IDBVersionChangeEvent" - } - ] - } + { + "name": "unhandledrejection", + "type": "PromiseRejectionEvent" + } + ] + } + } + } + }, + "mixins": { + "mixin": { + "AbstractWorker": { + "events": { + "event": [ + { + "name": "error", + "type": "ErrorEvent" + } + ] + } + }, + "DocumentAndElementEventHandlers": { + "events": { + "event": [ + { + "name": "copy", + "type": "ClipboardEvent" }, - "UIEvent": { - "properties": { - "property": { - "which": { - "deprecated": true - } - } - } + { + "name": "cut", + "type": "ClipboardEvent" }, - "SpeechSynthesisUtterance": { - "events": { - "event": [ - { - "name": "start", - "type": "SpeechSynthesisEvent" - }, - { - "name": "end", - "type": "SpeechSynthesisEvent" - }, - { - "name": "error", - "type": "SpeechSynthesisErrorEvent" - }, - { - "name": "pause", - "type": "SpeechSynthesisEvent" - }, - { - "name": "resume", - "type": "SpeechSynthesisEvent" - }, - { - "name": "mark", - "type": "SpeechSynthesisEvent" - }, - { - "name": "boundary", - "type": "SpeechSynthesisEvent" - } - ] - } + { + "name": "paste", + "type": "ClipboardEvent" + } + ] + } + }, + "DocumentOrShadowRoot": { + "methods": { + "method": { + "elementFromPoint": { + "name": "elementFromPoint", + "overrideSignatures": [ + "elementFromPoint(x: number, y: number): Element | null" + ] }, - "TextTrackList": { - "events": { - "event": [ - { - "name": "addtrack", - "type": "TrackEvent" - }, - { - "name": "removetrack", - "type": "TrackEvent" - } - ] - } + "elementsFromPoint": { + "name": "elementsFromPoint", + "overrideSignatures": [ + "elementsFromPoint(x: number, y: number): Element[]" + ] + } + } + } + }, + "GlobalEventHandlers": { + "events": { + "event": [ + { + "name": "abort", + "type": "UIEvent" }, - "DOMMatrixReadOnly": { - "methods": { - "method": { - "scaleNonUniform": { - "deprecated": true - } - } - } + { + "name": "auxclick", + "type": "MouseEvent" }, - "EventSource": { - "events": { - "event": [ - { - "name": "message", - "type": "MessageEvent" - } - ] - } + { + "name": "beforeinput", + "type": "InputEvent" }, - "HTMLBodyElement": { - "properties": { - "property": { - "onorientationchange": { - "deprecated": true - } - } - } + { + "name": "blur", + "type": "FocusEvent" }, - "HTMLInputElement": { - "properties": { - "property": { - "labels": { - "overrideType": "NodeListOf" - } - } - } + { + "name": "click", + "type": "MouseEvent" }, - "HTMLLinkElement": { - "properties": { - "property": { - "charset": { - "deprecated": true - }, - "rev": { - "deprecated": true - }, - "target": { - "deprecated": true - } - } - } + { + "name": "compositionstart", + "type": "CompositionEvent" }, - "KHR_parallel_shader_compile": { - "overrideExposed": "Window Worker" - }, - "OVR_multiview2": { - "overrideExposed": "Window Worker" - }, - // The spec removed `timestamp` but browsers still have it. - // https://github.com/w3c/webrtc-encoded-transform/pull/204 - "RTCEncodedAudioFrame": { - "properties": { - "property": { - "timestamp": { - "mdnUrl": "https://developer.mozilla.org/docs/Web/API/RTCEncodedAudioFrame/timestamp", - "name": "timestamp", - "type": "long long", - "readonly": true - } - } - } + { + "name": "compositionupdate", + "type": "CompositionEvent" }, - "RTCEncodedVideoFrame": { - "properties": { - "property": { - "timestamp": { - "mdnUrl": "https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame/timestamp", - "name": "timestamp", - "type": "long long", - "readonly": true - } - } - } + { + "name": "compositionend", + "type": "CompositionEvent" }, - "RTCDTMFSender": { - "events": { - "event": [ - { - "name": "tonechange", - "type": "RTCDTMFToneChangeEvent" - } - ] - } + { + "name": "drag", + "type": "DragEvent" }, - "RuntimeError": { - "name": "RuntimeError", - "extends": "Error", - "legacyNamespace": "WebAssembly", - "constructor": { - "overrideSignatures": [ - "new(message?: string): RuntimeError", - "(message?: string): RuntimeError" - ] - } + { + "name": "dragend", + "type": "DragEvent" }, - "SVGStyleElement": { - "properties": { - "property": { - "disabled": { - "name": "disabled", - "type": "boolean" - } - } - } + { + "name": "dragenter", + "type": "DragEvent" }, - "LinkError": { - "name": "LinkError", - "extends": "Error", - "legacyNamespace": "WebAssembly", - "constructor": { - "overrideSignatures": [ - "new(message?: string): LinkError", - "(message?: string): LinkError" - ] - } + { + "name": "dragleave", + "type": "DragEvent" }, - "MediaRecorder": { - "events": { - "event": [ - { - "name": "dataavailable", - "type": "BlobEvent" - } - ] - } + { + "name": "dragover", + "type": "DragEvent" }, - "MediaStream": { - "events": { - "event": [ - { - "name": "addtrack", - "type": "MediaStreamTrackEvent" - }, - { - "name": "removetrack", - "type": "MediaStreamTrackEvent" - } - ] - } + { + "name": "dragstart", + "type": "DragEvent" }, - "ProgressEvent": { - "typeParameters": [ - { - "name": "T", - "extends": "EventTarget", - "default": "EventTarget" - } - ], - "properties": { - "property": { - "target": { - "name": "target", - "readonly": true, - "nullable": true, - "overrideType": "T" - } - } - } + { + "name": "drop", + "type": "DragEvent" }, - "SharedWorkerGlobalScope": { - "events": { - "event": [ - { - "name": "connect", - "type": "MessageEvent" - } - ] - } + { + "name": "error", + "type": "ErrorEvent" }, - "Attr": { - "name": "Attr", - "properties": { - "property": { - "ownerDocument": { - "name": "ownerDocument", - "readonly": true, - "type": "Document" - } - } - } + { + "name": "focus", + "type": "FocusEvent" }, - "CharacterData": { - "name": "CharacterData", - "properties": { - "property": { - "ownerDocument": { - "name": "ownerDocument", - "readonly": true, - "type": "Document" - } - } - } + { + "name": "focusin", + "type": "FocusEvent" }, - "DocumentType": { - "name": "DocumentType", - "properties": { - "property": { - "ownerDocument": { - "name": "ownerDocument", - "readonly": true, - "type": "Document" - } - } - } + { + "name": "focusout", + "type": "FocusEvent" }, - "ProcessingInstruction": { - "name": "ProcessingInstruction", - "properties": { - "property": { - "ownerDocument": { - "name": "ownerDocument", - "readonly": true, - "type": "Document" - } - } - } + { + "name": "formdata", + "type": "FormDataEvent" }, - "WebSocket": { - "events": { - "event": [ - { - "name": "close", - "type": "CloseEvent" - } - ] - } + { + "name": "keydown", + "type": "KeyboardEvent" }, - "WorkerGlobalScope": { - "events": { - "event": [ - { - "name": "rejectionhandled", - "type": "PromiseRejectionEvent" - }, - { - "name": "unhandledrejection", - "type": "PromiseRejectionEvent" - } - ] - } + { + "name": "keypress", + "type": "KeyboardEvent" }, - "FileSystemFileHandle": { - "properties": { - "property": { - "kind": { - "name": "kind", - "readonly": true, - "overrideType": "\"file\"" - } - } - } + { + "name": "keyup", + "type": "KeyboardEvent" }, - "FileSystemDirectoryHandle": { - "properties": { - "property": { - "kind": { - "name": "kind", - "readonly": true, - "overrideType": "\"directory\"" - } - } - } - } - } - }, - "dictionaries": { - "dictionary": { - "KeyboardEventInit": { - "members": { - "member": { - "charCode": { - "deprecated": true - }, - "keyCode": { - "deprecated": true - } - } - } + { + "name": "mousedown", + "type": "MouseEvent" }, - "MemoryDescriptor": { - "members": { - "member": { - "shared": { - "name": "shared", - "type": "boolean" - } - } - } + { + "name": "mouseenter", + "type": "MouseEvent" }, - "ReadableStreamReadDoneResult": { - "name": "ReadableStreamReadDoneResult", - "typeParameters": [ - { - "name": "T" - } - ], - "members": { - "member": { - "done": { - "name": "done", - "overrideType": "true", - "required": true - }, - "value": { - "name": "value", - "overrideType": "T | undefined", - "required": true - } - } - } + { + "name": "mouseleave", + "type": "MouseEvent" }, - "ReadableStreamReadValueResult": { - "name": "ReadableStreamReadValueResult", - "typeParameters": [ - { - "name": "T" - } - ], - "members": { - "member": { - "done": { - "name": "done", - "overrideType": "false", - "required": true - }, - "value": { - "name": "value", - "overrideType": "T", - "required": true - } - } - } + { + "name": "mousemove", + "type": "MouseEvent" }, - "UnderlyingByteSource": { - "name": "UnderlyingByteSource", - "members": { - "member": { - "type": { - "name": "type", - "required": true, - "overrideType": "\"bytes\"" - }, - "autoAllocateChunkSize": { - "name": "autoAllocateChunkSize", - "type": "unsigned long long" - }, - "start": { - "name": "start", - "overrideType": "(controller: ReadableByteStreamController) => any" - }, - "pull": { - "name": "pull", - "overrideType": "(controller: ReadableByteStreamController) => void | PromiseLike" - }, - "cancel": { - "name": "cancel", - "type": "UnderlyingSourceCancelCallback" - } - } - } + { + "name": "mouseout", + "type": "MouseEvent" }, - "UnderlyingDefaultSource": { - "name": "UnderlyingDefaultSource", - "typeParameters": [ - { - "name": "R", - "default": "any" - } - ], - "members": { - "member": { - "type": { - "name": "type", - "type": "undefined" - }, - "start": { - "name": "start", - "overrideType": "(controller: ReadableStreamDefaultController) => any" - }, - "pull": { - "name": "pull", - "overrideType": "(controller: ReadableStreamDefaultController) => void | PromiseLike" - }, - "cancel": { - "name": "cancel", - "type": "UnderlyingSourceCancelCallback" - } - } - } + { + "name": "mouseover", + "type": "MouseEvent" }, - "ValueTypeMap": { - "name": "ValueTypeMap", - "legacyNamespace": "WebAssembly", - "exposed":"Window Worker Worklet", - "members": { - "member": { - "anyfunc": { - "name": "anyfunc", - "overrideType": "Function", - "required": 1 - }, - "externref": { - "name": "externref", - "overrideType": "any", - "required": 1 - }, - "f32": { - "name": "f32", - "overrideType": "number", - "required": 1 - }, - "f64": { - "name": "f64", - "overrideType": "number", - "required": 1 - }, - "i32": { - "name": "i32", - "overrideType": "number", - "required": 1 - }, - "i64": { - "name": "i64", - "overrideType": "bigint", - "required": 1 - }, - "v128": { - "name": "v128", - "overrideType": "never", - "required": 1 - } - } - } - } - } - }, - "typedefs": { - "typedef": [ - { - "type": { - "0": { - "subtype": { - "overrideType": "[string, string]" - } - } - }, - "additionalTypes": ["Headers"], - "name": "HeadersInit" + { + "name": "mouseup", + "type": "MouseEvent" }, { - "overrideType": "number | string | Date | BufferSource | IDBValidKey[]", - "name": "IDBValidKey" + "name": "progress", + "type": "ProgressEvent" }, { - "type": { - "0": { - "type": "Algorithm" - } - }, - "name": "AlgorithmIdentifier" + "name": "resize", + "type": "UIEvent" }, { - "name": "MutationRecordType", - "overrideType": "\"attributes\" | \"characterData\" | \"childList\"" + "name": "wheel", + "type": "WheelEvent" }, { - "name": "WindowProxy", - "type": "Window" + "name": "securitypolicyviolation", + "type": "SecurityPolicyViolationEvent" }, { - "name": "ValueType", - "legacyNamespace": "WebAssembly", - "overrideType": "keyof ValueTypeMap" + "name": "submit", + "type": "SubmitEvent" }, { - "name": "ExportValue", - "legacyNamespace": "WebAssembly", - "overrideType": "Function | Global | Memory | Table" + "name": "dblclick", + "type": "MouseEvent" }, { - "name": "Exports", - "legacyNamespace": "WebAssembly", - "type": "record", - "subtype": [ - { - "type": "DOMString" - }, - { - "type": "ExportValue" - } - ] + "name": "contextmenu", + "type": "MouseEvent" + } + ] + } + }, + "WebGLRenderingContextBase": { + "properties": { + "property": { + "canvas": { + "exposed": "Window" + } + } + } + }, + "WindowEventHandlers": { + "events": { + "event": [ + { + "name": "beforeunload", + "type": "BeforeUnloadEvent" }, { - "name": "ImportValue", - "legacyNamespace": "WebAssembly", - "overrideType": "ExportValue | number" + "name": "gamepadconnected", + "type": "GamepadEvent" }, { - "name": "ModuleImports", - "legacyNamespace": "WebAssembly", - "type": "record", - "subtype": [ - { - "type": "DOMString" - }, - { - "type": "ImportValue" - } - ] + "name": "gamepaddisconnected", + "type": "GamepadEvent" }, { - "name": "Imports", - "legacyNamespace": "WebAssembly", - "type": "record", - "subtype": [ - { - "type": "DOMString" - }, - { - "type": "ModuleImports" - } - ] + "name": "hashchange", + "type": "HashChangeEvent" }, { - "name": "ReadableStreamReadResult", - "typeParameters": [ - { - "name": "T" - } - ], - "type": [ - { - "type": "ReadableStreamReadValueResult" - }, - { - "type": "ReadableStreamReadDoneResult" - } - ], - "overrideType": "ReadableStreamReadValueResult | ReadableStreamReadDoneResult" + "name": "message", + "type": "MessageEvent" }, { - "name": "EventListenerOrEventListenerObject", - "overrideType": "EventListener | EventListenerObject" + "name": "messageerror", + "type": "MessageEvent" }, { - "name": "OptionalPrefixToken", - "typeParameters": [ - { - "name": "T extends string" - } - ], - "overrideType": "`${T} ` | \"\"" + "name": "pagehide", + "type": "PageTransitionEvent" }, { - "name": "OptionalPostfixToken", - "typeParameters": [ - { - "name": "T extends string" - } - ], - "overrideType": "` ${T}` | \"\"" + "name": "pageshow", + "type": "PageTransitionEvent" }, { - "name": "AutoFillSection", - // Note: this will also eagerly match any invalid string - // after section- instead of stopping at the first whitespace. - // It should be something like /section-\S/ if it were supported. - "overrideType": "`section-${string}`" + "name": "popstate", + "type": "PopStateEvent" }, { - "name": "AutoFillField", - "overrideType": "AutoFillNormalField | `${OptionalPrefixToken}${AutoFillContactField}`" + "name": "storage", + "type": "StorageEvent" }, { - // See the full list of possible autofill values for the `autocomplete` attribute: - // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#determine-a-field's-category - // Full spec at https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill. - "name": "AutoFill", - "overrideType": "AutoFillBase | `${OptionalPrefixToken}${OptionalPrefixToken}${AutoFillField}${OptionalPostfixToken}`" + "name": "unhandledrejection", + "type": "PromiseRejectionEvent" + }, + { + "name": "rejectionhandled", + "type": "PromiseRejectionEvent" } - ] + ] + } + } } -} + }, + "typedefs": { + "typedef": [ + { + "type": { + "0": { + "subtype": { + "overrideType": "[string, string]" + } + } + }, + "additionalTypes": [ + "Headers" + ], + "name": "HeadersInit" + }, + { + "overrideType": "number | string | Date | BufferSource | IDBValidKey[]", + "name": "IDBValidKey" + }, + { + "type": { + "0": { + "type": "Algorithm" + } + }, + "name": "AlgorithmIdentifier" + }, + { + "name": "MutationRecordType", + "overrideType": "\"attributes\" | \"characterData\" | \"childList\"" + }, + { + "name": "WindowProxy", + "type": "Window" + }, + { + "name": "ValueType", + "legacyNamespace": "WebAssembly", + "overrideType": "keyof ValueTypeMap" + }, + { + "name": "ExportValue", + "legacyNamespace": "WebAssembly", + "overrideType": "Function | Global | Memory | Table" + }, + { + "name": "Exports", + "legacyNamespace": "WebAssembly", + "type": "record", + "subtype": [ + { + "type": "DOMString" + }, + { + "type": "ExportValue" + } + ] + }, + { + "name": "ImportValue", + "legacyNamespace": "WebAssembly", + "overrideType": "ExportValue | number" + }, + { + "name": "ModuleImports", + "legacyNamespace": "WebAssembly", + "type": "record", + "subtype": [ + { + "type": "DOMString" + }, + { + "type": "ImportValue" + } + ] + }, + { + "name": "Imports", + "legacyNamespace": "WebAssembly", + "type": "record", + "subtype": [ + { + "type": "DOMString" + }, + { + "type": "ModuleImports" + } + ] + }, + { + "name": "ReadableStreamReadResult", + "typeParameters": [ + { + "name": "T" + } + ], + "type": [ + { + "type": "ReadableStreamReadValueResult" + }, + { + "type": "ReadableStreamReadDoneResult" + } + ], + "overrideType": "ReadableStreamReadValueResult | ReadableStreamReadDoneResult" + }, + { + "name": "EventListenerOrEventListenerObject", + "overrideType": "EventListener | EventListenerObject" + }, + { + "name": "OptionalPrefixToken", + "typeParameters": [ + { + "name": "T extends string" + } + ], + "overrideType": "`${T} ` | \"\"" + }, + { + "name": "OptionalPostfixToken", + "typeParameters": [ + { + "name": "T extends string" + } + ], + "overrideType": "` ${T}` | \"\"" + }, + { + "name": "AutoFillSection", + "overrideType": "`section-${string}`" + }, + { + "name": "AutoFillField", + "overrideType": "AutoFillNormalField | `${OptionalPrefixToken}${AutoFillContactField}`" + }, + { + "name": "AutoFill", + "overrideType": "AutoFillBase | `${OptionalPrefixToken}${OptionalPrefixToken}${AutoFillField}${OptionalPostfixToken}`" + } + ] + } +} \ No newline at end of file diff --git a/inputfiles/overridingTypes.jsonc b/inputfiles/overridingTypes.jsonc index 54b76e393..120e8da30 100644 --- a/inputfiles/overridingTypes.jsonc +++ b/inputfiles/overridingTypes.jsonc @@ -1,4165 +1,4172 @@ { - "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?" - } - } + "callbackFunctions": { + "callbackFunction": { + "AudioWorkletProcessorConstructor": { + "overrideSignatures": [ + "new (options: any): AudioWorkletProcessorImpl" + ] + }, + "CustomElementConstructor": { + "overrideSignatures": [ + "new (...params: any[]): HTMLElement" + ] + }, + "LockGrantedCallback": { + "signature": { + "0": { + "overrideType": "T" + } + }, + "typeParameters": [ + { + "name": "T" + } + ] + }, + "OnErrorEventHandlerNonNull": { + "signature": { + "0": { + "param": [ + { + "name": "error", + "overrideType": "Error" } - }, - "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" - } - } + ] + } + } + }, + "QueuingStrategySize": { + "signature": { + "0": { + "param": [ + { + "name": "chunk", + "overrideType": "T" } - }, - "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"] - } - ] - } - } - } - } - } + ] + } + }, + "typeParameters": [ + { + "name": "T", + "default": "any" + } + ] + }, + "TransformerFlushCallback": { + "signature": { + "0": { + "param": [ + { + "name": "controller", + "overrideType": "TransformStreamDefaultController" + } + ] + } + }, + "typeParameters": [ + { + "name": "O" + } + ] + }, + "TransformerStartCallback": { + "signature": { + "0": { + "param": [ + { + "name": "controller", + "overrideType": "TransformStreamDefaultController" + } + ] + } + }, + "typeParameters": [ + { + "name": "O" + } + ] + }, + "TransformerTransformCallback": { + "signature": { + "0": { + "param": [ + { + "name": "chunk", + "overrideType": "I" + }, + { + "name": "controller", + "overrideType": "TransformStreamDefaultController" + } + ] + } + }, + "typeParameters": [ + { + "name": "I" + }, + { + "name": "O" + } + ] + }, + "UnderlyingSinkWriteCallback": { + "signature": { + "0": { + "param": [ + { + "name": "chunk", + "overrideType": "W" + } + ] + } + }, + "typeParameters": [ + { + "name": "W" + } + ] + }, + "UnderlyingSourcePullCallback": { + "signature": { + "0": { + "param": [ + { + "name": "controller", + "overrideType": "ReadableStreamController" + } + ] + } + }, + "typeParameters": [ + { + "name": "R" + } + ] + }, + "UnderlyingSourceStartCallback": { + "signature": { + "0": { + "param": [ + { + "name": "controller", + "overrideType": "ReadableStreamController" + } + ] + } + }, + "typeParameters": [ + { + "name": "R" + } + ] + } + } + }, + "callbackInterfaces": { + "interface": {} + }, + "dictionaries": { + "dictionary": { + "AuthenticatorSelectionCriteria": { + "members": { + "member": { + "authenticatorAttachment": { + "type": "AuthenticatorAttachment" + }, + "residentKey": { + "type": "ResidentKeyRequirement" + }, + "userVerification": { + "type": "UserVerificationRequirement" } + } } - }, - "callbackFunctions": { - "callbackFunction": { - "OnErrorEventHandlerNonNull": { - "signature": { - "0": { - "param": [ - { - "name": "error", - "overrideType": "Error" - } - ] - } - } + }, + "BaseComputedKeyframe": { + "members": { + "member": { + "composite": { + "required": true }, - "QueuingStrategySize": { - "typeParameters": [ - { - "name": "T", - "default": "any" - } - ], - "signature": { - "0": { - "param": [ - { - "name": "chunk", - "overrideType": "T" - } - ] - } - } + "computedOffset": { + "required": true }, - "UnderlyingSourceStartCallback": { - "typeParameters": [ - { - "name": "R" - } - ], - "signature": { - "0": { - "param": [ - { - "name": "controller", - "overrideType": "ReadableStreamController" - } - ] - } - } - }, - "UnderlyingSourcePullCallback": { - "typeParameters": [ - { - "name": "R" - } - ], - "signature": { - "0": { - "param": [ - { - "name": "controller", - "overrideType": "ReadableStreamController" - } - ] - } - } + "easing": { + "required": true }, - "UnderlyingSinkWriteCallback": { - "typeParameters": [ - { - "name": "W" - } - ], - "signature": { - "0": { - "param": [ - { - "name": "chunk", - "overrideType": "W" - } - ] - } - } + "offset": { + "required": true + } + } + }, + "name": "ComputedKeyframe", + "overrideIndexSignatures": [ + "[property: string]: string | number | null | undefined" + ] + }, + "BaseKeyframe": { + "name": "Keyframe", + "overrideIndexSignatures": [ + "[property: string]: string | number | null | undefined" + ] + }, + "BasePropertyIndexedKeyframe": { + "name": "PropertyIndexedKeyframes", + "overrideIndexSignatures": [ + "[property: string]: string | string[] | number | null | (number | null)[] | undefined" + ] + }, + "ClientQueryOptions": { + "members": { + "member": { + "type": { + "name": "type", + "overrideType": "ClientTypes" + } + } + } + }, + "CryptoKeyPair": { + "members": { + "member": { + "privateKey": { + "required": true + }, + "publicKey": { + "required": true + } + } + } + }, + "CustomEventInit": { + "members": { + "member": { + "detail": { + "name": "detail", + "overrideType": "T" + } + } + }, + "typeParameters": [ + { + "name": "T", + "default": "any" + } + ] + }, + "FontFaceDescriptors": { + "members": { + "member": { + "display": { + "type": "FontDisplay" + } + } + } + }, + "GlobalDescriptor": { + "legacyNamespace": "WebAssembly", + "members": { + "member": { + "value": { + "overrideType": "T" + } + } + }, + "typeParameters": [ + { + "name": "T", + "extends": "ValueType", + "default": "ValueType" + } + ] + }, + "MemoryDescriptor": { + "legacyNamespace": "WebAssembly" + }, + "MessageEventInit": { + "members": { + "member": { + "data": { + "name": "data", + "overrideType": "T" + } + } + }, + "typeParameters": [ + { + "name": "T", + "default": "any" + } + ] + }, + "ModuleExportDescriptor": { + "legacyNamespace": "WebAssembly" + }, + "ModuleImportDescriptor": { + "legacyNamespace": "WebAssembly" + }, + "PermissionDescriptor": { + "members": { + "member": { + "name": { + "type": "PermissionName" + } + } + } + }, + "PromiseRejectionEventInit": { + "members": { + "member": { + "promise": { + "overrideType": "Promise" + } + } + } + }, + "PublicKeyCredentialCreationOptions": { + "members": { + "member": { + "attestation": { + "type": "AttestationConveyancePreference" + } + } + } + }, + "PublicKeyCredentialDescriptor": { + "members": { + "member": { + "transports": { + "subtype": { + "type": "AuthenticatorTransport" + } }, - "TransformerFlushCallback": { - "typeParameters": [ - { - "name": "O" - } - ], - "signature": { - "0": { - "param": [ - { - "name": "controller", - "overrideType": "TransformStreamDefaultController" - } - ] - } - } + "type": { + "type": "PublicKeyCredentialType" + } + } + } + }, + "PublicKeyCredentialParameters": { + "members": { + "member": { + "type": { + "type": "PublicKeyCredentialType" + } + } + } + }, + "PublicKeyCredentialRequestOptions": { + "members": { + "member": { + "userVerification": { + "type": "UserVerificationRequirement" + } + } + } + }, + "QueuingStrategy": { + "members": { + "member": { + "size": { + "overrideType": "QueuingStrategySize" + } + } + }, + "typeParameters": [ + { + "name": "T", + "default": "any" + } + ] + }, + "ReadableWritablePair": { + "members": { + "member": { + "readable": { + "overrideType": "ReadableStream" + }, + "writable": { + "overrideType": "WritableStream" + } + } + }, + "typeParameters": [ + { + "name": "R", + "default": "any" + }, + { + "name": "W", + "default": "any" + } + ] + }, + "RequestInit": { + "members": { + "member": { + "window": { + "overrideType": "null" + } + } + } + }, + "StructuredSerializeOptions": { + "members": { + "member": { + "transfer": { + "overrideType": "Transferable[]" + } + } + } + }, + "TableDescriptor": { + "legacyNamespace": "WebAssembly" + }, + "TextEncoderEncodeIntoResult": { + "members": { + "member": { + "read": { + "required": true + }, + "written": { + "required": true + } + } + } + }, + "TokenBinding": { + "members": { + "member": { + "status": { + "type": "TokenBindingStatus" + } + } + } + }, + "Transformer": { + "members": { + "member": { + "flush": { + "overrideType": "TransformerFlushCallback" }, - "TransformerStartCallback": { - "typeParameters": [ - { - "name": "O" - } - ], - "signature": { - "0": { - "param": [ - { - "name": "controller", - "overrideType": "TransformStreamDefaultController" - } - ] - } - } + "readableType": { + "overrideType": "undefined" }, - "TransformerTransformCallback": { - "typeParameters": [ - { - "name": "I" - }, - { - "name": "O" - } - ], - "signature": { - "0": { - "param": [ - { - "name": "chunk", - "overrideType": "I" - }, - { - "name": "controller", - "overrideType": "TransformStreamDefaultController" - } - ] - } - } + "start": { + "overrideType": "TransformerStartCallback" }, - "CustomElementConstructor": { - "overrideSignatures": [ - "new (...params: any[]): HTMLElement" - ] + "transform": { + "overrideType": "TransformerTransformCallback" }, - "AudioWorkletProcessorConstructor": { - "overrideSignatures": [ - "new (options: any): AudioWorkletProcessorImpl" - ] + "writableType": { + "overrideType": "undefined" + } + } + }, + "typeParameters": [ + { + "name": "I", + "default": "any" + }, + { + "name": "O", + "default": "any" + } + ] + }, + "UIEventInit": { + "members": { + "member": { + "which": { + "deprecated": true + } + } + } + }, + "UnderlyingSink": { + "members": { + "member": { + "type": { + "overrideType": "undefined" + }, + "write": { + "overrideType": "UnderlyingSinkWriteCallback" + } + } + }, + "typeParameters": [ + { + "name": "W", + "default": "any" + } + ] + }, + "UnderlyingSource": { + "members": { + "member": { + "pull": { + "overrideType": "UnderlyingSourcePullCallback" + }, + "start": { + "overrideType": "UnderlyingSourceStartCallback" + } + } + }, + "typeParameters": [ + { + "name": "R", + "default": "any" + } + ] + }, + "WebAssemblyInstantiatedSource": { + "legacyNamespace": "WebAssembly" + } + } + }, + "enums": { + "enum": { + "ImageOrientation": { + "value": [ + "none" + ] + }, + "ImportExportKind": { + "legacyNamespace": "WebAssembly" + }, + "TableKind": { + "legacyNamespace": "WebAssembly" + } + } + }, + "interfaces": { + "interface": { + "Animation": { + "events": { + "event": [ + { + "name": "finish", + "type": "AnimationPlaybackEvent" }, - "LockGrantedCallback": { - "typeParameters": [ - { - "name": "T" - } - ], - "signature": { - "0": { - "overrideType": "T" - } - } + { + "name": "cancel", + "type": "AnimationPlaybackEvent" } + ] } - }, - "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" - ] + }, + "BeforeUnloadEvent": { + "properties": { + "property": { + "returnValue": { + "name": "returnValue", + "overrideType": "any" } + } } - }, - "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 - } - ] - } - } + }, + "Blob": { + "methods": { + "method": { + "stream": { + "signature": { + "0": { + "overrideType": "ReadableStream" } - }, - "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" - } - } - } + } + } + } + } + }, + "ByteLengthQueuingStrategy": { + "extends": "QueuingStrategy", + "properties": { + "property": { + "size": { + "name": "size", + "overrideType": [ + "QueuingStrategySize" + ] + } + } + } + }, + "CSSFontFaceRule": { + "properties": { + "property": { + "style": { + "type": "CSSStyleDeclaration" + } + } + } + }, + "CSSKeyframeRule": { + "properties": { + "property": { + "style": { + "type": "CSSStyleDeclaration" + } + } + } + }, + "CSSNestedDeclarations": { + "properties": { + "property": { + "style": { + "type": "CSSStyleDeclaration" + } + } + } + }, + "CSSPageRule": { + "properties": { + "property": { + "style": { + "type": "CSSStyleDeclaration" + } + } + } + }, + "CSSStyleDeclaration": { + "properties": { + "property": { + "cssFloat": { + "mdnUrl": "https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/cssFloat", + "name": "cssFloat", + "type": "CSSOMString" + }, + "webkitLineClamp": { + "deprecated": false + } + } + } + }, + "CSSStyleRule": { + "properties": { + "property": { + "style": { + "type": "CSSStyleDeclaration" + } + } + } + }, + "Cache": { + "methods": { + "method": { + "match": { + "name": "match", + "signature": { + "0": { + "overrideType": "Promise" } - }, - "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" - } - ] + } + } + } + } + }, + "CacheStorage": { + "methods": { + "method": { + "match": { + "name": "match", + "signature": { + "0": { + "overrideType": "Promise" } - }, - "CustomEvent": { - "properties": { - "property": { - "detail": { - "overrideType": "T" - } - } - }, - "methods": { - "method": { - "initCustomEvent": { - "signature": { - "0": { - "param": [ - { - "name": "detail", - "overrideType": "T" - } - ] - } - } - } - } - }, - "typeParameters": [ + } + } + } + } + }, + "Client": { + "methods": { + "method": { + "postMessage": { + "signature": { + "0": { + "param": [ { - "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" - } + "name": "transfer", + "overrideType": "Transferable[]" } + ] } - }, - "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" - } - } + } + } + } + }, + "properties": { + "property": { + "type": { + "name": "type", + "overrideType": "ClientTypes" + } + } + } + }, + "Clients": { + "methods": { + "method": { + "get": { + "signature": { + "0": { + "overrideType": "Promise" } + } }, - "HTMLDirectoryElement": { - "element": [ - { - "name": "dir" - } - ] - }, - "HTMLFontElement": { - "element": [ + "matchAll": { + "signature": { + "0": { + "overrideType": "Promise>", + "param": [ { - "name": "font" + "name": "options", + "overrideType": "T" } - ] - }, - "HTMLFrameElement": { - "element": [ + ], + "typeParameters": [ { - "name": "frame" + "name": "T", + "extends": "ClientQueryOptions" } - ] - }, - "FontFace": { - "properties": { - "property": { - "display": { - "type": "FontDisplay" - } + ] } } - }, - "HTMLFrameSetElement": { - "element": [ + } + } + } + }, + "CompressionStream": { + "properties": { + "property": { + "readable": { + "name": "readable", + "overrideType": "ReadableStream", + "readonly": true + }, + "writable": { + "name": "writable", + "overrideType": "WritableStream", + "readonly": true + } + } + } + }, + "ContactAddress": { + "name": "PaymentAddress" + }, + "CountQueuingStrategy": { + "extends": "QueuingStrategy", + "properties": { + "property": { + "size": { + "name": "size", + "overrideType": [ + "QueuingStrategySize" + ] + } + } + } + }, + "Crypto": { + "methods": { + "method": { + "getRandomValues": { + "signature": { + "0": { + "overrideType": "T", + "param": [ { - "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" - } - } - } + "name": "array", + "overrideType": "T" } - } - }, - "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": [ + ], + "typeParameters": [ { - "name": "T", - "default": "any" - } - ] - }, - "ImageBitmapRenderingContext": { - "properties": { - "property": { - "canvas": { - "exposed": "Window" - } + "name": "T", + "extends": "ArrayBufferView | null" } + ] } + } }, - "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" - } - } - } - } + "randomUUID": { + "signature": { + "0": { + "overrideType": "`${string}-${string}-${string}-${string}-${string}`" } - }, - "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\"" - } - ] - } - } - } + } + } + } + } + }, + "CryptoKey": { + "properties": { + "property": { + "algorithm": { + "type": "KeyAlgorithm" + }, + "usages": { + "subtype": { + "type": "KeyUsage" + }, + "type": "sequence" + } + } + } + }, + "CustomEvent": { + "constructor": { + "signature": { + "0": { + "overrideType": "CustomEvent", + "param": [ + { + "name": "eventInitDict", + "overrideType": "CustomEventInit" + } + ], + "typeParameters": [ + { + "name": "T" + } + ] + } + } + }, + "methods": { + "method": { + "initCustomEvent": { + "signature": { + "0": { + "param": [ + { + "name": "detail", + "overrideType": "T" } + ] } + } + } + } + }, + "properties": { + "property": { + "detail": { + "overrideType": "T" + } + } + }, + "typeParameters": [ + { + "name": "T", + "default": "any" + } + ] + }, + "DOMException": { + "extends": "Error" + }, + "DOMImplementation": { + "methods": { + "method": { + "hasFeature": { + "overrideSignatures": [ + "hasFeature(...args: any[]): true" + ] + } + } + } + }, + "DOMStringMap": { + "overrideIndexSignatures": [ + "[name: string]: string | undefined" + ] + }, + "DataTransfer": { + "properties": { + "property": { + "dropEffect": { + "name": "dropEffect", + "overrideType": "\"none\" | \"copy\" | \"link\" | \"move\"" + }, + "effectAllowed": { + "name": "effectAllowed", + "overrideType": "\"none\" | \"copy\" | \"copyLink\" | \"copyMove\" | \"link\" | \"linkMove\" | \"move\" | \"all\" | \"uninitialized\"" + } + } + } + }, + "DecompressionStream": { + "properties": { + "property": { + "readable": { + "name": "readable", + "overrideType": "ReadableStream", + "readonly": true + }, + "writable": { + "name": "writable", + "overrideType": "WritableStream", + "readonly": true + } + } + } + }, + "DedicatedWorkerGlobalScope": { + "events": { + "event": [ + { + "name": "message", + "type": "MessageEvent" }, - "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" - ] - } + { + "name": "messageerror", + "type": "MessageEvent" + } + ] + }, + "methods": { + "method": { + "postMessage": { + "signature": { + "0": { + "param": [ + { + "name": "transfer", + "overrideType": "Transferable[]" } + ] } - }, - "DOMException": { - "extends": "Error" - }, - "DOMStringMap": { - "overrideIndexSignatures": [ - "[name: string]: string | undefined" - ] - }, - "DOMImplementation": { - "methods": { - "method": { - "hasFeature": { - "overrideSignatures": [ - "hasFeature(...args: any[]): true" - ] - } + } + } + } + } + }, + "Document": { + "methods": { + "method": { + "adoptNode": { + "signature": { + "0": { + "overrideType": "T", + "param": [ + { + "name": "node", + "overrideType": "T" } - } - }, - "HTMLButtonElement": { - "properties": { - "property": { - "labels": { - "name": "labels", - "overrideType": "NodeListOf" - }, - "type": { - "overrideType": "\"submit\" | \"reset\" | \"button\"" - } + ], + "typeParameters": [ + { + "name": "T", + "extends": "Node" } + ] } + } }, - "HTMLLabelElement": { - "properties": { - "property": { - "form": { - "name": "form", - "overrideType": "HTMLFormElement" - } - } - } + "getElementById": { + "name": "getElementById", + "overrideSignatures": [ + "getElementById(elementId: string): HTMLElement | null" + ] }, - "HTMLMeterElement": { - "properties": { - "property": { - "labels": { - "name": "labels", - "overrideType": "NodeListOf" - } - } + "getElementsByClassName": { + "name": "getElementsByClassName", + "signature": { + "0": { + "overrideType": "HTMLCollectionOf" } + } }, - "HTMLOutputElement": { - "properties": { - "property": { - "labels": { - "name": "labels", - "overrideType": "NodeListOf" - } - } + "getElementsByName": { + "name": "getElementsByName", + "signature": { + "0": { + "overrideType": "NodeListOf" } + } }, - "HTMLProgressElement": { - "properties": { - "property": { - "labels": { - "name": "labels", - "overrideType": "NodeListOf" - } - } + "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" + ], + "name": "getElementsByTagNameNS", + "signature": { + "0": { + "overrideType": "HTMLCollectionOf" } + } }, - "HTMLTextAreaElement": { - "properties": { - "property": { - "autocomplete": { - "name": "autocomplete", - "overrideType": "AutoFill" - }, - "labels": { - "name": "labels", - "overrideType": "NodeListOf" - }, - "selectionDirection": { - "name": "selectionDirection", - "overrideType": "\"forward\" | \"backward\" | \"none\"" - } + "importNode": { + "signature": { + "0": { + "overrideType": "T", + "param": [ + { + "name": "node", + "overrideType": "T" } - }, - "methods": { - "method": { - "setSelectionRange": { - "signature": { - "0": { - "param": [ - { - "name": "start", - "nullable": true - }, - { - "name": "end", - "nullable": true - }, - { - "name": "direction", - "overrideType": "\"forward\" | \"backward\" | \"none\"" - } - ] - } - } - } + ], + "typeParameters": [ + { + "name": "T", + "extends": "Node" } + ] } - }, - "ServiceWorkerContainer": { - "methods": { - "method": { - "getRegistration": { - "signature": { - "0": { - "overrideType": "Promise" - } - } - } - } - }, - "events": { - "event": [ - { - "name": "message", - "type": "MessageEvent" - }, - { - "name": "messageerror", - "type": "MessageEvent" - } - ] + } + } + } + }, + "properties": { + "property": { + "anchors": { + "name": "anchors", + "overrideType": "HTMLCollectionOf" + }, + "body": { + "nullable": false + }, + "defaultView": { + "name": "defaultView", + "overrideType": "WindowProxy & typeof globalThis" + }, + "documentElement": { + "name": "documentElement", + "nullable": false, + "overrideType": "HTMLElement" + }, + "embeds": { + "name": "embeds", + "overrideType": "HTMLCollectionOf" + }, + "forms": { + "name": "forms", + "overrideType": "HTMLCollectionOf" + }, + "head": { + "nullable": false + }, + "images": { + "name": "images", + "overrideType": "HTMLCollectionOf" + }, + "links": { + "name": "links", + "overrideType": "HTMLCollectionOf" + }, + "location": { + "nullable": false, + "readonly": false + }, + "plugins": { + "name": "plugins", + "overrideType": "HTMLCollectionOf" + }, + "scripts": { + "name": "scripts", + "overrideType": "HTMLCollectionOf" + } + } + } + }, + "DocumentFragment": { + "methods": { + "method": { + "getElementById": { + "name": "getElementById", + "overrideSignatures": [ + "getElementById(elementId: string): HTMLElement | null" + ] + } + } + }, + "properties": { + "property": { + "ownerDocument": { + "name": "ownerDocument", + "readonly": 1, + "type": "Document" + } + } + } + }, + "Element": { + "methods": { + "method": { + "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" + ], + "name": "getElementsByTagNameNS", + "signature": { + "0": { + "overrideType": "HTMLCollectionOf" } - }, - "WebSocket": { - "methods": { - "method": { - "send": { - "name": "send", - "overrideSignatures": [ - "send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void" - ] - } + } + } + } + } + }, + "EventTarget": { + "methods": { + "method": { + "addEventListener": { + "signature": { + "0": { + "param": [ + { + "name": "callback", + "overrideType": "EventListenerOrEventListenerObject" } - }, - "events": { - "event": [ - { - "name": "message", - "type": "MessageEvent" - } - ] + ] } + } }, - "WebTransportDatagramDuplexStream": { - "properties": { - "property": { - // WebTransportDatagramsWritable is not implemented by anyone as of 2025-03 - "writable": { - "type": "WritableStream" - } + "removeEventListener": { + "signature": { + "0": { + "param": [ + { + "name": "callback", + "overrideType": "EventListenerOrEventListenerObject" } + ] } - }, - "HTMLTableRowElement": { - "properties": { - "property": { - "cells": { - "name": "cells", - "overrideType": "HTMLCollectionOf" - } + } + } + } + } + }, + "ExtendableEvent": { + "methods": { + "method": { + "waitUntil": { + "signature": { + "0": { + "param": [ + { + "name": "f", + "overrideType": "Promise" } + ] } + } + } + } + } + }, + "FileReader": { + "events": { + "event": [ + { + "name": "loadstart", + "type": "ProgressEvent" }, - "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" - } - ] - } + { + "name": "progress", + "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" - } - } - } + { + "name": "load", + "type": "ProgressEvent" }, - "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" - } + { + "name": "abort", + "type": "ProgressEvent" }, - "MutationRecord": { - "properties": { - "property": { - "type": { - "name": "type", - "overrideType": "MutationRecordType" - } - } - } + { + "name": "error", + "type": "ProgressEvent" }, - "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"] - } - ] - } - } - } + { + "name": "loadend", + "type": "ProgressEvent" + } + ] + }, + "properties": { + "property": { + "readyState": { + "name": "readyState", + "overrideType": "typeof FileReader.EMPTY | typeof FileReader.LOADING | typeof FileReader.DONE" + } + } + } + }, + "FileSystemDirectoryHandle": { + "iterator": { + "exposed": "Window Worker" + } + }, + "FontFace": { + "properties": { + "property": { + "display": { + "type": "FontDisplay" + } + } + } + }, + "FormData": { + "methods": { + "method": { + "append": { + "additionalSignatures": [ + "append(name: string, value: string | Blob): void" + ], + "flavor": "Web", + "name": "append" + }, + "set": { + "additionalSignatures": [ + "set(name: string, value: string | Blob): void" + ], + "flavor": "Web", + "name": "set" + } + } + } + }, + "GPUError": { + "exposed": "Window Worker", + "noInterfaceObject": true, + "properties": { + "property": { + "message": { + "exposed": "Window Worker" + } + } + } + }, + "GPUPipelineError": { + "constructor": { + "signature": { + "0": { + "param": [ + { + "name": "message", + "optional": false + } + ] + } + } + } + }, + "Global": { + "constructor": { + "overrideSignatures": [ + "new(descriptor: GlobalDescriptor, v?: ValueTypeMap[T]): Global" + ] + }, + "methods": { + "method": { + "valueOf": { + "overrideSignatures": [ + "valueOf(): ValueTypeMap[T]" + ] + } + } + }, + "name": "Global", + "properties": { + "property": { + "value": { + "overrideType": "ValueTypeMap[T]" + } + } + }, + "typeParameters": [ + { + "name": "T", + "extends": "ValueType", + "default": "ValueType" + } + ] + }, + "HTMLButtonElement": { + "properties": { + "property": { + "labels": { + "name": "labels", + "overrideType": "NodeListOf" + }, + "type": { + "overrideType": "\"submit\" | \"reset\" | \"button\"" + } + } + } + }, + "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" } + ] } + } }, - "Client": { - "properties": { - "property": { - "type": { - "name": "type", - "overrideType": "ClientTypes" - } - } - }, - "methods": { - "method": { - "postMessage": { - "signature": { - "0": { - "param": [ - { - "name": "transfer", - "overrideType": "Transferable[]" - } - ] - } - } - } + "toDataURL": { + "name": "toDataURL", + "signature": { + "0": { + "param": [ + { + "name": "quality", + "overrideType": "number" } + ] } - }, - "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 - } + } + } + } + } + }, + "HTMLDataListElement": { + "properties": { + "property": { + "options": { + "name": "options", + "overrideType": "HTMLCollectionOf" + } + } + } + }, + "HTMLDirectoryElement": { + "element": [ + { + "name": "dir" + } + ] + }, + "HTMLElement": { + "methods": { + "method": { + "togglePopover": { + "signature": { + "0": { + "param": [ + { + "name": "options", + "type": "boolean" } + ] } - }, - "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 - } - } - } + } + } + } + }, + "properties": { + "property": { + "hidden": { + "nullable": false, + "overrideType": "boolean" + } + } + } + }, + "HTMLFontElement": { + "element": [ + { + "name": "font" + } + ] + }, + "HTMLFormElement": { + "overrideIndexSignatures": [ + "[index: number]: Element", + "[name: string]: any" + ], + "properties": { + "property": { + "autocomplete": { + "name": "autocomplete", + "overrideType": "AutoFillBase" + } + } + } + }, + "HTMLFrameElement": { + "element": [ + { + "name": "frame" + } + ] + }, + "HTMLFrameSetElement": { + "element": [ + { + "name": "frameset" + } + ] + }, + "HTMLImageElement": { + "properties": { + "property": { + "fetchPriority": { + "overrideType": "\"high\" | \"low\" | \"auto\"" + } + } + } + }, + "HTMLInputElement": { + "methods": { + "method": { + "setSelectionRange": { + "signature": { + "0": { + "param": [ + { + "name": "start", + "nullable": true + }, + { + "name": "end", + "nullable": true + }, + { + "name": "direction", + "overrideType": "\"forward\" | \"backward\" | \"none\"" } + ] } - }, - "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" - } - ] - } - } - } - } + } + } + } + }, + "properties": { + "property": { + "autocomplete": { + "name": "autocomplete", + "overrideType": "AutoFill" + }, + "selectionDirection": { + "name": "selectionDirection", + "overrideType": "\"forward\" | \"backward\" | \"none\"" + }, + "valueAsDate": { + "name": "valueAsDate", + "overrideType": "Date" + } + } + } + }, + "HTMLLabelElement": { + "properties": { + "property": { + "form": { + "name": "form", + "overrideType": "HTMLFormElement" + } + } + } + }, + "HTMLLinkElement": { + "properties": { + "property": { + "fetchPriority": { + "overrideType": "\"high\" | \"low\" | \"auto\"" + } + } + } + }, + "HTMLMarqueeElement": { + "element": [ + { + "name": "marquee" + } + ] + }, + "HTMLMediaElement": { + "properties": { + "property": { + "preload": { + "overrideType": "\"none\" | \"metadata\" | \"auto\" | \"\"" + } + } + } + }, + "HTMLMeterElement": { + "properties": { + "property": { + "labels": { + "name": "labels", + "overrideType": "NodeListOf" + } + } + } + }, + "HTMLOptionsCollection": { + "extends": "HTMLCollectionOf" + }, + "HTMLOutputElement": { + "properties": { + "property": { + "labels": { + "name": "labels", + "overrideType": "NodeListOf" + } + } + } + }, + "HTMLProgressElement": { + "properties": { + "property": { + "labels": { + "name": "labels", + "overrideType": "NodeListOf" + } + } + } + }, + "HTMLScriptElement": { + "properties": { + "property": { + "fetchPriority": { + "overrideType": "\"high\" | \"low\" | \"auto\"" + } + } + } + }, + "HTMLSelectElement": { + "overrideIndexSignatures": [ + "[name: number]: HTMLOptionElement | HTMLOptGroupElement" + ], + "properties": { + "property": { + "autocomplete": { + "name": "autocomplete", + "overrideType": "AutoFill" + }, + "labels": { + "name": "labels", + "overrideType": "NodeListOf" + }, + "selectedOptions": { + "name": "selectedOptions", + "overrideType": "HTMLCollectionOf" + }, + "type": { + "name": "type", + "overrideType": "\"select-one\" | \"select-multiple\"" + } + } + } + }, + "HTMLTableElement": { + "properties": { + "property": { + "rows": { + "name": "rows", + "overrideType": "HTMLCollectionOf" + }, + "tBodies": { + "name": "tBodies", + "overrideType": "HTMLCollectionOf" + } + } + } + }, + "HTMLTableRowElement": { + "properties": { + "property": { + "cells": { + "name": "cells", + "overrideType": "HTMLCollectionOf" + } + } + } + }, + "HTMLTableSectionElement": { + "properties": { + "property": { + "rows": { + "name": "rows", + "overrideType": "HTMLCollectionOf" + } + } + } + }, + "HTMLTextAreaElement": { + "methods": { + "method": { + "setSelectionRange": { + "signature": { + "0": { + "param": [ + { + "name": "start", + "nullable": true + }, + { + "name": "end", + "nullable": true + }, + { + "name": "direction", + "overrideType": "\"forward\" | \"backward\" | \"none\"" } + ] } - }, - "Cache": { - "methods": { - "method": { - "match": { - "name": "match", - "signature": { - "0": { - "overrideType": "Promise" - } - } - } + } + } + } + }, + "properties": { + "property": { + "autocomplete": { + "name": "autocomplete", + "overrideType": "AutoFill" + }, + "labels": { + "name": "labels", + "overrideType": "NodeListOf" + }, + "selectionDirection": { + "name": "selectionDirection", + "overrideType": "\"forward\" | \"backward\" | \"none\"" + } + } + } + }, + "IDBCursor": { + "methods": { + "method": { + "continue": { + "signature": { + "0": { + "param": [ + { + "name": "key", + "overrideType": "IDBValidKey" } + ] } + } }, - "CacheStorage": { - "methods": { - "method": { - "match": { - "name": "match", - "signature": { - "0": { - "overrideType": "Promise" - } - } - } + "continuePrimaryKey": { + "signature": { + "0": { + "param": [ + { + "name": "key", + "overrideType": "IDBValidKey" + }, + { + "name": "primaryKey", + "overrideType": "IDBValidKey" } + ] } + } }, - "Animation": { - "events": { - "event": [ - { - "name": "finish", - "type": "AnimationPlaybackEvent" - }, - { - "name": "cancel", - "type": "AnimationPlaybackEvent" - } - ] + "delete": { + "signature": { + "0": { + "overrideType": "IDBRequest" } + } }, - "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" - } - ] - } - } - } - } + "update": { + "signature": { + "0": { + "overrideType": "IDBRequest" } - }, - "HTMLMarqueeElement": { - "element": [ + } + } + } + }, + "properties": { + "property": { + "key": { + "name": "key", + "type": "IDBValidKey" + }, + "primaryKey": { + "name": "primaryKey", + "type": "IDBValidKey" + } + } + } + }, + "IDBIndex": { + "methods": { + "method": { + "count": { + "name": "count", + "signature": { + "0": { + "overrideType": "IDBRequest", + "param": [ { - "name": "marquee" + "name": "query", + "overrideType": "IDBValidKey | IDBKeyRange" } - ] + ] + } + } }, - "Worker": { - "methods": { - "method": { - "postMessage": { - "signature": { - "0": { - "param": [ - { - "name": "transfer", - "overrideType": "Transferable[]" - } - ] - } - } - } + "get": { + "name": "get", + "signature": { + "0": { + "overrideType": "IDBRequest", + "param": [ + { + "name": "query", + "overrideType": "IDBValidKey | IDBKeyRange" } + ] } + } }, - "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}`" - } - } - } + "getAll": { + "name": "getAll", + "signature": { + "0": { + "overrideType": "IDBRequest", + "param": [ + { + "name": "query", + "overrideType": "IDBValidKey | IDBKeyRange | null" } + ] } + } }, - "OfflineAudioContext": { - "events": { - "event": [ - { - "name": "complete", - "type": "OfflineAudioCompletionEvent" - } - ] + "getAllKeys": { + "name": "getAllKeys", + "signature": { + "0": { + "overrideType": "IDBRequest", + "param": [ + { + "name": "query", + "overrideType": "IDBValidKey | IDBKeyRange | null" + } + ] } + } }, - "PannerNode": { - "methods": { - "method": { - "setPosition": { - "name": "setPosition", - "deprecated": true - }, - "setOrientation": { - "name": "setOrientation", - "deprecated": true - } + "getKey": { + "name": "getKey", + "signature": { + "0": { + "overrideType": "IDBRequest", + "param": [ + { + "name": "query", + "overrideType": "IDBValidKey | IDBKeyRange" } + ] } + } }, - "PromiseRejectionEvent": { - "properties": { - "property": { - "promise": { - "overrideType": "Promise" - } + "openCursor": { + "name": "openCursor", + "signature": { + "0": { + "overrideType": "IDBRequest", + "param": [ + { + "name": "query", + "overrideType": "IDBValidKey | IDBKeyRange | null" } + ] } + } }, - "ScriptProcessorNode": { - "events": { - "event": [ - { - "name": "audioprocess", - "type": "AudioProcessingEvent" - } - ] + "openKeyCursor": { + "name": "openKeyCursor", + "signature": { + "0": { + "overrideType": "IDBRequest", + "param": [ + { + "name": "query", + "overrideType": "IDBValidKey | IDBKeyRange | null" + } + ] } - }, - "MessagePort": { - "methods": { - "method": { - "postMessage": { - "signature": { - "0": { - "param": [ - { - "name": "transfer", - "overrideType": "Transferable[]" - } - ] - } - } - } + } + } + } + }, + "properties": { + "property": { + "keyPath": { + "name": "keyPath", + "overrideType": "string | string[]" + } + } + } + }, + "IDBObjectStore": { + "methods": { + "method": { + "add": { + "name": "add", + "signature": { + "0": { + "overrideType": "IDBRequest", + "param": [ + { + "name": "key", + "overrideType": "IDBValidKey" } - }, - "events": { - "event": [ - { - "name": "message", - "type": "MessageEvent" - }, - { - "name": "messageerror", - "type": "MessageEvent" - } - ] + ] } + } }, - "ServiceWorker": { - "methods": { - "method": { - "postMessage": { - "signature": { - "0": { - "param": [ - { - "name": "transfer", - "overrideType": "Transferable[]" - } - ] - } - } - } - } + "clear": { + "name": "clear", + "signature": { + "0": { + "overrideType": "IDBRequest" } + } }, - "DedicatedWorkerGlobalScope": { - "methods": { - "method": { - "postMessage": { - "signature": { - "0": { - "param": [ - { - "name": "transfer", - "overrideType": "Transferable[]" - } - ] - } - } - } + "count": { + "name": "count", + "signature": { + "0": { + "overrideType": "IDBRequest", + "param": [ + { + "name": "query", + "overrideType": "IDBValidKey | IDBKeyRange" } - }, - "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" - } + "delete": { + "name": "delete", + "signature": { + "0": { + "overrideType": "IDBRequest", + "param": [ + { + "name": "query", + "overrideType": "IDBValidKey | IDBKeyRange" } + ] } + } }, - "Blob": { - "methods": { - "method": { - "stream": { - "signature": { - "0": { - "overrideType": "ReadableStream" - } + "get": { + "name": "get", + "signature": { + "0": { + "overrideType": "IDBRequest", + "param": [ + { + "name": "query", + "overrideType": "IDBValidKey | IDBKeyRange" } - } + ] } } }, - "ReadableStream": { - "typeParameters": [ + "getAll": { + "name": "getAll", + "signature": { + "0": { + "overrideType": "IDBRequest", + "param": [ { - "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" - } + "name": "query", + "overrideType": "IDBValidKey | IDBKeyRange | null" } + ] } + } }, - "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>" - } - } - } + "getAllKeys": { + "name": "getAllKeys", + "signature": { + "0": { + "overrideType": "IDBRequest", + "param": [ + { + "name": "query", + "overrideType": "IDBValidKey | IDBKeyRange | null" } + ] } + } }, - "ReadableStreamDefaultReader": { - "typeParameters": [ + "getKey": { + "name": "getKey", + "signature": { + "0": { + "overrideType": "IDBRequest", + "param": [ { - "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>" - } - } - } + "name": "query", + "overrideType": "IDBValidKey | IDBKeyRange" } + ] } + } }, - "ReadableStreamDefaultController": { - "typeParameters": [ + "openCursor": { + "name": "openCursor", + "signature": { + "0": { + "overrideType": "IDBRequest", + "param": [ { - "name": "R", - "default": "any" - } - ], - "methods": { - "method": { - "enqueue": { - "signature": { - "0": { - "param": [ - { - "name": "chunk", - "overrideType": "R" - } - ] - } - } - } + "name": "query", + "overrideType": "IDBValidKey | IDBKeyRange | null" } + ] } + } }, - "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": [ + "openKeyCursor": { + "name": "openKeyCursor", + "signature": { + "0": { + "overrideType": "IDBRequest", + "param": [ { - "name": "W", - "default": "any" - } - ], - "methods": { - "method": { - "getWriter": { - "signature": { - "0": { - "overrideType": "WritableStreamDefaultWriter" - } - } - } + "name": "query", + "overrideType": "IDBValidKey | IDBKeyRange | null" } + ] } + } }, - "WritableStreamDefaultWriter": { - "typeParameters": [ + "put": { + "name": "put", + "signature": { + "0": { + "overrideType": "IDBRequest", + "param": [ { - "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" - } - ] - } - } - } + "name": "key", + "overrideType": "IDBValidKey" } + ] + } + } + } + } + }, + "properties": { + "property": { + "keyPath": { + "name": "keyPath", + "overrideType": "string | string[] | null" + } + } + } + }, + "IDBRequest": { + "properties": { + "property": { + "result": { + "name": "result", + "overrideType": "T" + }, + "source": { + "name": "source", + "nullable": false + } + } + }, + "typeParameters": [ + { + "name": "T", + "default": "any" + } + ] + }, + "ImageBitmapRenderingContext": { + "properties": { + "property": { + "canvas": { + "exposed": "Window" + } + } + } + }, + "InstallEvent": { + "exposed": "" + }, + "Instance": { + "constructor": { + "signature": { + "0": { + "param": [ + { + "name": "importObject", + "type": "Imports" + } + ] + } + } + }, + "properties": { + "property": { + "exports": { + "type": "Exports" + } + } + } + }, + "KeyframeEffect": { + "constructor": { + "signature": { + "0": { + "param": [ + { + "name": "keyframes", + "overrideType": "Keyframe[] | PropertyIndexedKeyframes" + } + ] + } + } + }, + "methods": { + "method": { + "getKeyframes": { + "signature": { + "0": { + "overrideType": "ComputedKeyframe[]" } + } }, - "TransformStream": { - "typeParameters": [ + "setKeyframes": { + "signature": { + "0": { + "param": [ { - "name": "I", - "default": "any" - }, + "name": "keyframes", + "overrideType": "Keyframe[] | PropertyIndexedKeyframes" + } + ] + } + } + } + } + } + }, + "LockManager": { + "methods": { + "method": { + "request": { + "signature": { + "0": { + "overrideType": "Promise", + "param": [ { - "name": "O", - "default": "any" + "name": "callback", + "overrideType": "LockGrantedCallback" } - ], - "properties": { - "property": { - "readable": { - "overrideType": "ReadableStream" - }, - "writable": { - "overrideType": "WritableStream" - } + ], + "typeParameters": [ + { + "name": "T" } + ] }, - "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": [ + "1": { + "overrideType": "Promise", + "param": [ { - "name": "O", - "default": "any" + "name": "callback", + "overrideType": "LockGrantedCallback" } - ], - "methods": { - "method": { - "enqueue": { - "signature": { - "0": { - "param": [ - { - "name": "chunk", - "overrideType": "O" - } - ] - } - } - } + ], + "typeParameters": [ + { + "name": "T" } + ] } - }, - "ByteLengthQueuingStrategy": { - "extends": "QueuingStrategy", - "properties": { - "property": { - "size": { - "name": "size", - "overrideType": [ - "QueuingStrategySize" - ] - } + }, + "typeParameters": { + "name": "T" + } + } + } + } + }, + "MIDIAccess": { + "exposed": "Window", + "transferable": false + }, + "MIDIConnectionEvent": { + "exposed": "Window" + }, + "MIDIInput": { + "events": { + "event": [ + { + "name": "midimessage", + "type": "MIDIMessageEvent" + } + ] + }, + "exposed": "Window" + }, + "MIDIInputMap": { + "exposed": "Window" + }, + "MIDIMessageEvent": { + "exposed": "Window" + }, + "MIDIOutput": { + "exposed": "Window" + }, + "MIDIOutputMap": { + "exposed": "Window" + }, + "MIDIPort": { + "events": { + "event": [ + { + "name": "statechange", + "type": "MIDIConnectionEvent" + } + ] + }, + "exposed": "Window" + }, + "MediaKeySession": { + "events": { + "event": [ + { + "name": "message", + "type": "MediaKeyMessageEvent" + } + ] + } + }, + "MediaMetadata": { + "properties": { + "property": { + "artwork": { + "subtype": { + "type": "MediaImage" + } + } + } + } + }, + "MediaQueryList": { + "events": { + "event": [ + { + "name": "change", + "type": "MediaQueryListEvent" + } + ] + }, + "methods": { + "method": { + "addListener": { + "deprecated": true, + "signature": { + "0": { + "param": [ + { + "name": "callback", + "overrideType": "(this: MediaQueryList, ev: MediaQueryListEvent) => any" } + ] } + } }, - "CountQueuingStrategy": { - "extends": "QueuingStrategy", - "properties": { - "property": { - "size": { - "name": "size", - "overrideType": [ - "QueuingStrategySize" - ] - } + "removeListener": { + "deprecated": true, + "signature": { + "0": { + "param": [ + { + "name": "callback", + "overrideType": "(this: MediaQueryList, ev: MediaQueryListEvent) => any" } + ] } + } + } + } + } + }, + "MediaSource": { + "exposed": "Window" + }, + "MessageEvent": { + "constructor": { + "signature": { + "0": { + "overrideType": "MessageEvent", + "param": [ + { + "name": "eventInitDict", + "overrideType": "MessageEventInit" + } + ], + "typeParameters": [ + { + "name": "T" + } + ] + } + } + }, + "properties": { + "property": { + "data": { + "overrideType": "T" + } + } + }, + "typeParameters": [ + { + "name": "T", + "default": "any" + } + ] + }, + "MessagePort": { + "events": { + "event": [ + { + "name": "message", + "type": "MessageEvent" }, - "CompressionStream": { - "properties": { - "property": { - "readable": { - "name": "readable", - "readonly": true, - "overrideType": "ReadableStream" - }, - "writable": { - "name": "writable", - "readonly": true, - "overrideType": "WritableStream" - } + { + "name": "messageerror", + "type": "MessageEvent" + } + ] + }, + "methods": { + "method": { + "postMessage": { + "signature": { + "0": { + "param": [ + { + "name": "transfer", + "overrideType": "Transferable[]" } + ] } + } + } + } + } + }, + "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" + ] + } + } + } + }, + "MutationRecord": { + "properties": { + "property": { + "type": { + "name": "type", + "overrideType": "MutationRecordType" + } + } + } + }, + "NavigationActivation": { + "exposed": "Window", + "properties": { + "property": { + "entry": { + "exposed": "Window" + }, + "from": { + "exposed": "Window" + }, + "navigationType": { + "exposed": "Window" + } + } + } + }, + "NavigationHistoryEntry": { + "exposed": "Window", + "methods": { + "method": { + "getState": { + "exposed": "Window" + } + } + }, + "properties": { + "property": { + "id": { + "exposed": "Window" }, - "DecompressionStream": { - "properties": { - "property": { - "readable": { - "name": "readable", - "readonly": true, - "overrideType": "ReadableStream" - }, - "writable": { - "name": "writable", - "readonly": true, - "overrideType": "WritableStream" - } - } - } + "index": { + "exposed": "Window" }, - "TextDecoderStream": { - "properties": { - "property": { - "readable": { - "name": "readable", - "readonly": true, - "overrideType": "ReadableStream" - }, - "writable": { - "name": "writable", - "readonly": true, - "overrideType": "WritableStream" - } - } - } + "key": { + "exposed": "Window" }, - "TextEncoderStream": { - "properties": { - "property": { - "readable": { - "name": "readable", - "readonly": true, - "overrideType": "ReadableStream" - }, - "writable": { - "name": "writable", - "readonly": true, - "overrideType": "WritableStream" - } - } - } + "ondispose": { + "exposed": "Window" }, - "Permissions": { - "methods": { - "method": { - "query": { - "signature": { - "0": { - "param": [ - { - "name": "permissionDesc", - "type": "PermissionDescriptor" - } - ] - } - } - } - } - } + "sameDocument": { + "exposed": "Window" }, - "ExtendableEvent": { - "methods": { - "method": { - "waitUntil": { - "signature": { - "0": { - "param": [ - { - "name": "f", - "overrideType": "Promise" - } - ] - } - } - } + "url": { + "exposed": "Window" + } + } + } + }, + "Node": { + "methods": { + "method": { + "appendChild": { + "signature": { + "0": { + "overrideType": "T", + "param": [ + { + "name": "node", + "overrideType": "T" } - } - }, - "EventTarget": { - "methods": { - "method": { - "addEventListener": { - "signature": { - "0": { - "param": [ - { - "name": "callback", - "overrideType": "EventListenerOrEventListenerObject" - } - ] - } - } - }, - "removeEventListener": { - "signature": { - "0": { - "param": [ - { - "name": "callback", - "overrideType": "EventListenerOrEventListenerObject" - } - ] - } - } - } + ], + "typeParameters": [ + { + "name": "T", + "extends": "Node" } + ] } + } }, - "WorkerGlobalScope": { - "properties": { - "property": { - "self": { - "overrideType": "WorkerGlobalScope & typeof globalThis" - } + "insertBefore": { + "signature": { + "0": { + "overrideType": "T", + "param": [ + { + "name": "node", + "overrideType": "T" } - }, - "events": { - "event": [ - { - "name": "error", - "type": "ErrorEvent" - } - ] + ], + "typeParameters": [ + { + "name": "T", + "extends": "Node" + } + ] } + } }, - "InstallEvent": { - // https://github.com/mdn/browser-compat-data/issues/22591 - "exposed": "" - }, - "Instance": { - "constructor": { - "signature": { - "0": { - "param": [ - { - "name": "importObject", - "type": "Imports" - } - ] - } + "removeChild": { + "signature": { + "0": { + "overrideType": "T", + "param": [ + { + "name": "child", + "overrideType": "T" } - }, - "properties": { - "property": { - "exports": { - "type": "Exports" - } + ], + "typeParameters": [ + { + "name": "T", + "extends": "Node" } + ] } + } }, - "MediaKeySession": { - "events": { - "event": [ - { - "name": "message", - "type": "MediaKeyMessageEvent" - } - ] - } - }, - "MessageEvent": { - "properties": { - "property": { - "data": { - "overrideType": "T" - } - } - }, - "typeParameters": [ + "replaceChild": { + "signature": { + "0": { + "overrideType": "T", + "param": [ { - "name": "T", - "default": "any" + "name": "child", + "overrideType": "T" } - ], - "constructor": { - "signature": { - "0": { - "typeParameters": [ - { - "name": "T" - } - ], - "param": [ - { - "name": "eventInitDict", - "overrideType": "MessageEventInit" - } - ], - "overrideType": "MessageEvent" - } + ], + "typeParameters": [ + { + "name": "T", + "extends": "Node" } + ] } + } + } + } + }, + "properties": { + "property": { + "childNodes": { + "overrideType": "NodeListOf" }, - "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 + "firstChild": { + "overrideType": "ChildNode" }, - "MIDIMessageEvent": { - "exposed": "Window" // Window only on Gecko/Blink as of 2024-07 + "lastChild": { + "overrideType": "ChildNode" }, - "MIDIOutput": { - "exposed": "Window" // Window only on Gecko/Blink as of 2024-07 + "nextSibling": { + "overrideType": "ChildNode" }, - "MIDIOutputMap": { - "exposed": "Window" // Window only on Gecko/Blink as of 2024-07 + "parentElement": { + "overrideType": "HTMLElement" }, - "MIDIPort": { - "exposed": "Window", // Window only on Gecko/Blink as of 2024-07 - "events": { - "event": [ - { - "name": "statechange", - "type": "MIDIConnectionEvent" - } - ] - } + "parentNode": { + "overrideType": "ParentNode" }, - "Clients": { - "methods": { - "method": { - "get": { - "signature": { - "0": { - "overrideType": "Promise" - } - } - }, - "matchAll": { - "signature": { - "0": { - "typeParameters": [ - { - "name": "T", - "extends": "ClientQueryOptions" - } - ], - "param": [ - { - "name": "options", - "overrideType": "T" - } - ], - "overrideType": "Promise>" - } - } - } + "previousSibling": { + "overrideType": "ChildNode" + } + } + } + }, + "OfflineAudioContext": { + "events": { + "event": [ + { + "name": "complete", + "type": "OfflineAudioCompletionEvent" + } + ] + } + }, + "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" + ] + } + } + } + }, + "PannerNode": { + "methods": { + "method": { + "setOrientation": { + "deprecated": true, + "name": "setOrientation" + }, + "setPosition": { + "deprecated": true, + "name": "setPosition" + } + } + } + }, + "PaymentRequest": { + "properties": { + "property": { + "shippingAddress": { + "type": "PaymentAddress" + } + } + } + }, + "PaymentResponse": { + "properties": { + "property": { + "shippingAddress": { + "type": "PaymentAddress" + } + } + } + }, + "Permissions": { + "methods": { + "method": { + "query": { + "signature": { + "0": { + "param": [ + { + "name": "permissionDesc", + "type": "PermissionDescriptor" } + ] } + } + } + } + } + }, + "PromiseRejectionEvent": { + "properties": { + "property": { + "promise": { + "overrideType": "Promise" + } + } + } + }, + "RTCDataChannel": { + "events": { + "event": [ + { + "name": "message", + "type": "MessageEvent" + } + ] + } + }, + "RTCIceCandidatePair": { + "exposed": "Window", + "noInterfaceObject": true, + "properties": { + "property": { + "local": { + "readonly": false + }, + "remote": { + "readonly": false + } + } + } + }, + "RTCPeerConnection": { + "events": { + "event": [ + { + "name": "track", + "type": "RTCTrackEvent" }, - "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" - } - } - } + { + "name": "icecandidate", + "type": "RTCPeerConnectionIceEvent" + }, + { + "name": "datachannel", + "type": "RTCDataChannelEvent" }, - "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" - } + { + "name": "icecandidateerror", + "type": "RTCPeerConnectionIceErrorEvent" + } + ] + }, + "methods": { + "method": { + "addIceCandidate": { + "signature": { + "0": { + "param": [ + { + "name": "candidate", + "nullable": true + } + ] + }, + "1": { + "deprecated": true, + "param": [ + { + "name": "candidate", + "nullable": true } + ] } + } }, - "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" - } - } + "createAnswer": { + "signature": { + "1": { + "deprecated": true } + } }, - "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" - } - } + "createOffer": { + "signature": { + "1": { + "deprecated": true } + } }, - "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 - } - } + "setLocalDescription": { + "signature": { + "1": { + "deprecated": true } + } }, - "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" - } - } + "setRemoteDescription": { + "signature": { + "1": { + "deprecated": true } + } + } + } + } + }, + "ReadableStream": { + "constructor": { + "force-references": [ + { + "type": "UnderlyingSource" }, - "ContactAddress": { - "name": "PaymentAddress" + { + "type": "UnderlyingByteSource" }, - "HTMLMediaElement": { - "properties": { - "property": { - "preload": { - "overrideType": "\"none\" | \"metadata\" | \"auto\" | \"\"" - } - } - } + { + "type": "UnderlyingDefaultSource" }, - "Global": { - "name": "Global", - "typeParameters": [ - { - "name": "T", - "extends": "ValueType", - "default": "ValueType" - } - ], - "constructor": { - "overrideSignatures": [ - "new(descriptor: GlobalDescriptor, v?: ValueTypeMap[T]): Global" - ] + { + "type": "QueuingStrategy" + } + ], + "signature": { + "0": { + "overrideType": "ReadableStream", + "param": [ + { + "name": "underlyingSource", + "optional": false, + "type": "UnderlyingByteSource" }, - "properties": { - "property": { - "value": { - "overrideType": "ValueTypeMap[T]" - } - } + { + "name": "strategy", + "overrideType": "{ highWaterMark?: number }" + } + ] + }, + "1": { + "overrideType": "ReadableStream", + "param": [ + { + "name": "underlyingSource", + "optional": false, + "overrideType": "UnderlyingDefaultSource" }, - "methods": { - "method": { - "valueOf": { - "overrideSignatures": [ - "valueOf(): ValueTypeMap[T]" - ] - } - } + { + "name": "strategy", + "optional": true, + "overrideType": "QueuingStrategy" + } + ], + "typeParameters": [ + { + "name": "R", + "default": "any" + } + ] + }, + "2": { + "overrideType": "ReadableStream", + "param": [ + { + "name": "underlyingSource", + "optional": true, + "overrideType": "UnderlyingSource" + }, + { + "name": "strategy", + "optional": true, + "overrideType": "QueuingStrategy" + } + ], + "typeParameters": [ + { + "name": "R", + "default": "any" + } + ] + } + } + }, + "iterator": { + "type": { + "0": { + "overrideType": "R" + } + } + }, + "methods": { + "method": { + "getReader": { + "additionalSignatures": [ + "getReader(options: { mode: \"byob\" }): ReadableStreamBYOBReader", + "getReader(): ReadableStreamDefaultReader" + ], + "signature": { + "0": { + "overrideType": "ReadableStreamReader" } + } }, - - // 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" - } + "pipeThrough": { + "signature": { + "0": { + "overrideType": "ReadableStream", + "param": [ + { + "name": "transform", + "overrideType": "ReadableWritablePair" } - } - }, - "PaymentResponse": { - "properties": { - "property": { - "shippingAddress": { - "type": "PaymentAddress" - } + ], + "typeParameters": [ + { + "name": "T" } + ] } + } }, - - "SourceBuffer": { - "exposed": "Window" - }, - "SourceBufferList": { - "exposed": "Window" - }, - "StylePropertyMapReadOnly": { - "methods": { - "method": { - "get": { - // https://github.com/w3c/css-houdini-drafts/pull/1087 - "signature": { - "0": { - "overrideType": "undefined | CSSStyleValue" - } - } - } + "pipeTo": { + "signature": { + "0": { + "param": [ + { + "name": "destination", + "overrideType": "WritableStream" } + ] } + } }, - "HTMLImageElement": { - "properties": { - "property": { - "fetchPriority": { - "overrideType": "\"high\" | \"low\" | \"auto\"" - } - } + "tee": { + "signature": { + "0": { + "overrideType": "[ReadableStream, ReadableStream]" } - }, - "HTMLLinkElement": { - "properties": { - "property": { - "fetchPriority": { - "overrideType": "\"high\" | \"low\" | \"auto\"" - } + } + } + } + }, + "typeParameters": [ + { + "name": "R", + "default": "any" + } + ] + }, + "ReadableStreamBYOBReader": { + "constructor": { + "signature": { + "0": { + "param": [ + { + "name": "stream", + "overrideType": "ReadableStream" + } + ] + } + } + }, + "methods": { + "method": { + "read": { + "signature": { + "0": { + "overrideType": "Promise>", + "param": [ + { + "name": "view", + "overrideType": "T" } - } - }, - "HTMLScriptElement": { - "properties": { - "property": { - "fetchPriority": { - "overrideType": "\"high\" | \"low\" | \"auto\"" - } + ], + "typeParameters": [ + { + "name": "T", + "extends": "ArrayBufferView" } + ] } - }, - "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" - } - } - } + } + } + } + } + }, + "ReadableStreamDefaultController": { + "methods": { + "method": { + "enqueue": { + "signature": { + "0": { + "param": [ + { + "name": "chunk", + "overrideType": "R" } + ] + } + } + } + } + }, + "typeParameters": [ + { + "name": "R", + "default": "any" + } + ] + }, + "ReadableStreamDefaultReader": { + "constructor": { + "signature": { + "0": { + "overrideType": "ReadableStreamDefaultReader", + "param": [ + { + "name": "stream", + "overrideType": "ReadableStream" + } + ], + "typeParameters": [ + { + "name": "R", + "default": "any" + } + ] + } + } + }, + "methods": { + "method": { + "read": { + "signature": { + "0": { + "overrideType": "Promise>" } + } + } + } + }, + "typeParameters": [ + { + "name": "R", + "default": "any" + } + ] + }, + "SVGElement": { + "properties": { + "property": { + "className": { + "deprecated": true, + "name": "className", + "type": "any" } + } } - }, - "dictionaries": { - "dictionary": { - "FontFaceDescriptors": { - "members": { - "member": { - "display":{ - "type": "FontDisplay" - } + }, + "SVGSVGElement": { + "methods": { + "method": { + "getEnclosureList": { + "signature": { + "0": { + "overrideType": "NodeListOf" } } }, - // https://github.com/microsoft/TypeScript/issues/46036 - "CryptoKeyPair": { - "members": { - "member": { - "privateKey": { - "required": true - }, - "publicKey": { - "required": true - } + "getIntersectionList": { + "signature": { + "0": { + "overrideType": "NodeListOf" + } + } + } + } + } + }, + "SVGSymbolElement": { + "extends": "SVGElement" + }, + "ScriptProcessorNode": { + "events": { + "event": [ + { + "name": "audioprocess", + "type": "AudioProcessingEvent" + } + ] + } + }, + "ServiceWorker": { + "methods": { + "method": { + "postMessage": { + "signature": { + "0": { + "param": [ + { + "name": "transfer", + "overrideType": "Transferable[]" } + ] } + } + } + } + } + }, + "ServiceWorkerContainer": { + "events": { + "event": [ + { + "name": "message", + "type": "MessageEvent" }, - "StructuredSerializeOptions": { - "members": { - "member": { - "transfer": { - "overrideType": "Transferable[]" - } - } + { + "name": "messageerror", + "type": "MessageEvent" + } + ] + }, + "methods": { + "method": { + "getRegistration": { + "signature": { + "0": { + "overrideType": "Promise" } + } + } + } + } + }, + "ServiceWorkerGlobalScope": { + "events": { + "event": [ + { + "name": "install", + "type": "ExtendableEvent" }, - "MessageEventInit": { - "members": { - "member": { - "data": { - "name": "data", - "overrideType": "T" - } - } - }, - "typeParameters": [ - { - "name": "T", - "default": "any" - } - ] + { + "name": "activate", + "type": "ExtendableEvent" }, - "CustomEventInit": { - "members": { - "member": { - "detail": { - "name": "detail", - "overrideType": "T" - } - } - }, - "typeParameters": [ - { - "name": "T", - "default": "any" - } - ] + { + "name": "fetch", + "type": "FetchEvent" + }, + { + "name": "message", + "type": "ExtendableMessageEvent" + }, + { + "name": "messageerror", + "type": "MessageEvent" + }, + { + "name": "notificationclick", + "type": "NotificationEvent" }, - "ClientQueryOptions": { - "members": { - "member": { - "type": { - "name": "type", - "overrideType": "ClientTypes" - } + { + "name": "notificationclose", + "type": "NotificationEvent" + }, + { + "name": "push", + "type": "PushEvent" + } + ], + "methods": { + "method": { + "waitUntil": { + "signature": { + "0": { + "param": [ + { + "name": "f", + "overrideType": "Promise" + } + ] + } + } + } + } + } + } + }, + "SourceBuffer": { + "exposed": "Window" + }, + "SourceBufferList": { + "exposed": "Window" + }, + "Storage": { + "overrideIndexSignatures": [ + "[name: string]: any" + ] + }, + "StylePropertyMapReadOnly": { + "methods": { + "method": { + "get": { + "signature": { + "0": { + "overrideType": "undefined | CSSStyleValue" + } + } + } + } + } + }, + "SubtleCrypto": { + "methods": { + "method": { + "decrypt": { + "signature": { + "0": { + "param": [ + { + "name": "algorithm", + "additionalTypes": [ + "RsaOaepParams", + "AesCtrParams", + "AesCbcParams", + "AesGcmParams" + ] } + ] } + } }, - "AuthenticatorSelectionCriteria": { - "members": { - "member": { - "authenticatorAttachment": { - "type": "AuthenticatorAttachment" - }, - "residentKey": { - "type": "ResidentKeyRequirement" - }, - "userVerification": { - "type": "UserVerificationRequirement" - } + "deriveBits": { + "signature": { + "0": { + "param": [ + { + "name": "algorithm", + "additionalTypes": [ + "EcdhKeyDeriveParams", + "HkdfParams", + "Pbkdf2Params" + ] } + ] } + } }, - "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" - } + "deriveKey": { + "signature": { + "0": { + "overrideType": "Promise", + "param": [ + { + "name": "algorithm", + "additionalTypes": [ + "EcdhKeyDeriveParams", + "HkdfParams", + "Pbkdf2Params" + ] + }, + { + "name": "derivedKeyType", + "additionalTypes": [ + "AesDerivedKeyParams", + "HmacImportParams", + "HkdfParams", + "Pbkdf2Params" + ] } + ] } + } }, - "PromiseRejectionEventInit": { - "members": { - "member": { - "promise": { - "overrideType": "Promise" - } - } + "digest": { + "name": "digest", + "signature": { + "0": { + "overrideType": "Promise" } + } }, - "PublicKeyCredentialCreationOptions": { - "members": { - "member": { - "attestation": { - "type": "AttestationConveyancePreference" - } + "encrypt": { + "signature": { + "0": { + "param": [ + { + "name": "algorithm", + "additionalTypes": [ + "RsaOaepParams", + "AesCtrParams", + "AesCbcParams", + "AesGcmParams" + ] } + ] } + } }, - "PublicKeyCredentialDescriptor": { - "members": { - "member": { - "type": { - "type": "PublicKeyCredentialType" - }, - "transports": { - "subtype": { - "type": "AuthenticatorTransport" - } - } + "exportKey": { + "additionalSignatures": [ + "exportKey(format: \"jwk\", key: CryptoKey): Promise", + "exportKey(format: Exclude, key: CryptoKey): Promise" + ], + "signature": { + "0": { + "overrideType": "Promise", + "param": [ + { + "name": "format", + "overrideType": "KeyFormat" } + ] } + } }, - "PublicKeyCredentialParameters": { - "members": { - "member": { - "type": { - "type": "PublicKeyCredentialType" - } - } + "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" + ], + "name": "generateKey", + "signature": { + "0": { + "overrideType": "Promise" } + } }, - "PublicKeyCredentialRequestOptions": { - "members": { - "member": { - "userVerification": { - "type": "UserVerificationRequirement" - } + "importKey": { + "additionalSignatures": [ + "importKey(format: \"jwk\", keyData: JsonWebKey, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: ReadonlyArray): Promise" + ], + "force-references": [ + { + "type": "JsonWebKey" + } + ], + "name": "importKey", + "signature": { + "0": { + "param": [ + { + "name": "format", + "overrideType": "Exclude" + }, + { + "name": "keyData", + "type": "BufferSource" + }, + { + "name": "algorithm", + "additionalTypes": [ + "RsaHashedImportParams", + "EcKeyImportParams", + "HmacImportParams", + "AesKeyAlgorithm" + ] } + ] } + } }, - "QueuingStrategy": { - "typeParameters": [ + "sign": { + "signature": { + "0": { + "overrideType": "Promise", + "param": [ { - "name": "T", - "default": "any" - } - ], - "members": { - "member": { - "size": { - "overrideType": "QueuingStrategySize" - } + "name": "algorithm", + "additionalTypes": [ + "RsaPssParams", + "EcdsaParams" + ] } + ] } + } }, - "ReadableWritablePair": { - "typeParameters": [ + "unwrapKey": { + "signature": { + "0": { + "param": [ { - "name": "R", - "default": "any" + "name": "unwrapAlgorithm", + "additionalTypes": [ + "RsaOaepParams", + "AesCtrParams", + "AesCbcParams", + "AesGcmParams" + ] }, { - "name": "W", - "default": "any" - } - ], - "members": { - "member": { - "readable": { - "overrideType": "ReadableStream" - }, - "writable": { - "overrideType": "WritableStream" - } - } - } - }, - "RequestInit": { - "members": { - "member": { - "window": { - "overrideType": "null" - } + "name": "unwrappedKeyAlgorithm", + "additionalTypes": [ + "RsaHashedImportParams", + "EcKeyImportParams", + "HmacImportParams", + "AesKeyAlgorithm" + ] } + ] } + } }, - // TextEncoderEncodeIntoResult is used only for return type, always with all fields defined - "TextEncoderEncodeIntoResult": { - "members": { - "member": { - "read": { - "required": true - }, - "written": { - "required": true - } + "verify": { + "signature": { + "0": { + "overrideType": "Promise", + "param": [ + { + "name": "algorithm", + "additionalTypes": [ + "RsaPssParams", + "EcdsaParams" + ] } + ] } + } }, - "UnderlyingSource": { - "typeParameters": [ + "wrapKey": { + "signature": { + "0": { + "overrideType": "Promise", + "param": [ { - "name": "R", - "default": "any" - } - ], - "members": { - "member": { - "start": { - "overrideType": "UnderlyingSourceStartCallback" - }, - "pull": { - "overrideType": "UnderlyingSourcePullCallback" - } + "name": "wrapAlgorithm", + "additionalTypes": [ + "RsaOaepParams", + "AesCtrParams", + "AesCbcParams", + "AesGcmParams" + ] } + ] } + } + } + } + } + }, + "TextDecoderStream": { + "properties": { + "property": { + "readable": { + "name": "readable", + "overrideType": "ReadableStream", + "readonly": true + }, + "writable": { + "name": "writable", + "overrideType": "WritableStream", + "readonly": true + } + } + } + }, + "TextEncoderStream": { + "properties": { + "property": { + "readable": { + "name": "readable", + "overrideType": "ReadableStream", + "readonly": true + }, + "writable": { + "name": "writable", + "overrideType": "WritableStream", + "readonly": true + } + } + } + }, + "TransformStream": { + "constructor": { + "force-references": [ + { + "type": "Transformer" }, - "UIEventInit": { - "members": { - "member": { - "which": { - "deprecated": true - } - } + { + "type": "QueuingStrategy" + } + ], + "signature": { + "0": { + "overrideType": "TransformStream", + "param": [ + { + "name": "transformer", + "overrideType": "Transformer" + }, + { + "name": "writableStrategy", + "overrideType": "QueuingStrategy" + }, + { + "name": "readableStrategy", + "overrideType": "QueuingStrategy" + } + ], + "typeParameters": [ + { + "name": "I", + "default": "any" + }, + { + "name": "O", + "default": "any" } + ] + } + } + }, + "properties": { + "property": { + "readable": { + "overrideType": "ReadableStream" }, - "UnderlyingSink": { - "typeParameters": [ + "writable": { + "overrideType": "WritableStream" + } + } + }, + "typeParameters": [ + { + "name": "I", + "default": "any" + }, + { + "name": "O", + "default": "any" + } + ] + }, + "TransformStreamDefaultController": { + "methods": { + "method": { + "enqueue": { + "signature": { + "0": { + "param": [ { - "name": "W", - "default": "any" - } - ], - "members": { - "member": { - "write": { - "overrideType": "UnderlyingSinkWriteCallback" - }, - "type": { - "overrideType": "undefined" - } + "name": "chunk", + "overrideType": "O" } + ] } - }, - "TokenBinding": { - "members": { - "member": { - "status": { - "type": "TokenBindingStatus" - } + } + } + } + }, + "typeParameters": [ + { + "name": "O", + "default": "any" + } + ] + }, + "URL": { + "constructor": { + "signature": { + "0": { + "param": [ + { + "name": "base", + "additionalTypes": [ + "URL" + ] + } + ] + } + } + }, + "methods": { + "method": { + "canParse": { + "signature": { + "0": { + "param": [ + { + "name": "base", + "additionalTypes": [ + "URL" + ] } + ] } + } }, - "Transformer": { - "typeParameters": [ - { - "name": "I", - "default": "any" - }, + "parse": { + "signature": { + "0": { + "param": [ { - "name": "O", - "default": "any" + "name": "base", + "additionalTypes": [ + "URL" + ] } - ], - "members": { - "member": { - "start": { - "overrideType": "TransformerStartCallback" - }, - "transform": { - "overrideType": "TransformerTransformCallback" - }, - "flush": { - "overrideType": "TransformerFlushCallback" - }, - "readableType": { - "overrideType": "undefined" - }, - "writableType": { - "overrideType": "undefined" - } + ] + } + } + } + } + } + }, + "WebSocket": { + "events": { + "event": [ + { + "name": "message", + "type": "MessageEvent" + } + ] + }, + "methods": { + "method": { + "send": { + "name": "send", + "overrideSignatures": [ + "send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void" + ] + } + } + } + }, + "WebTransport": { + "methods": { + "method": { + "createUnidirectionalStream": { + "signature": { + "0": { + "subtype": { + "type": "WritableStream" + } + } + } + } + } + } + }, + "WebTransportBidirectionalStream": { + "properties": { + "property": { + "readable": { + "type": "ReadableStream" + }, + "writable": { + "type": "WritableStream" + } + } + } + }, + "WebTransportDatagramDuplexStream": { + "properties": { + "property": { + "writable": { + "type": "WritableStream" + } + } + } + }, + "Window": { + "methods": { + "method": { + "alert": { + "overrideSignatures": [ + "alert(message?: any): void" + ] + }, + "postMessage": { + "signature": { + "0": { + "param": [ + { + "name": "transfer", + "overrideType": "Transferable[]" } + ] } + } + } + } + }, + "overrideIndexSignatures": [], + "properties": { + "property": { + "event": { + "deprecated": true + }, + "location": { + "readonly": false + }, + "onorientationchange": { + "deprecated": true }, - "ModuleExportDescriptor": { - "legacyNamespace": "WebAssembly" + "pageXOffset": { + "deprecated": false }, - "ModuleImportDescriptor": { - "legacyNamespace": "WebAssembly" + "pageYOffset": { + "deprecated": false }, - "MemoryDescriptor": { - "legacyNamespace": "WebAssembly" + "parent": { + "nullable": false }, - "TableDescriptor": { - "legacyNamespace": "WebAssembly" + "self": { + "overrideType": "Window & typeof globalThis" }, - "GlobalDescriptor": { - "legacyNamespace": "WebAssembly", - "typeParameters": [ + "window": { + "overrideType": "Window & typeof globalThis" + } + } + } + }, + "Worker": { + "methods": { + "method": { + "postMessage": { + "signature": { + "0": { + "param": [ { - "name": "T", - "extends": "ValueType", - "default": "ValueType" - } - ], - "members": { - "member": { - "value": { - "overrideType": "T" - } + "name": "transfer", + "overrideType": "Transferable[]" } + ] } - }, - "WebAssemblyInstantiatedSource": { - "legacyNamespace": "WebAssembly" + } } + } } - }, - "typedefs": { - "typedef": [ + }, + "WorkerGlobalScope": { + "events": { + "event": [ { - "overrideType": "ReadableStreamDefaultController | ReadableByteStreamController", - "name": "ReadableStreamController", - "typeParameters": [ - { - "name": "T" - } - ] + "name": "error", + "type": "ErrorEvent" + } + ] + }, + "properties": { + "property": { + "self": { + "overrideType": "WorkerGlobalScope & typeof globalThis" + } + } + } + }, + "WritableStream": { + "constructor": { + "force-references": [ + { + "type": "UnderlyingSink" }, { - "name": "ReadableStreamReader", - "typeParameters": [ + "type": "QueuingStrategy" + } + ], + "signature": { + "0": { + "overrideType": "WritableStream", + "param": [ + { + "name": "underlyingSink", + "overrideType": "UnderlyingSink" + }, + { + "name": "strategy", + "overrideType": "QueuingStrategy" + } + ], + "typeParameters": [ + { + "name": "W", + "default": "any" + } + ] + } + } + }, + "methods": { + "method": { + "getWriter": { + "signature": { + "0": { + "overrideType": "WritableStreamDefaultWriter" + } + } + } + } + }, + "typeParameters": [ + { + "name": "W", + "default": "any" + } + ] + }, + "WritableStreamDefaultWriter": { + "constructor": { + "signature": { + "0": { + "overrideType": "WritableStreamDefaultWriter", + "param": [ + { + "name": "stream", + "overrideType": "WritableStream" + } + ], + "typeParameters": [ + { + "name": "W", + "default": "any" + } + ] + } + } + }, + "methods": { + "method": { + "write": { + "signature": { + "0": { + "param": [ { - "name": "T" + "name": "chunk", + "overrideType": "W" } - ], - "type": [ - { - "type": "ReadableStreamDefaultReader" - }, + ] + } + } + } + } + }, + "typeParameters": [ + { + "name": "W", + "default": "any" + } + ] + }, + "XMLHttpRequestEventTarget": { + "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" + } + ] + }, + "properties": { + "property": { + "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" + }, + "onloadend": { + "name": "onloadend", + "overrideType": "((this: XMLHttpRequest, ev: ProgressEvent) => any) | null" + }, + "onloadstart": { + "name": "onloadstart", + "overrideType": "((this: XMLHttpRequest, ev: ProgressEvent) => any) | null" + }, + "onprogress": { + "name": "onprogress", + "overrideType": "((this: XMLHttpRequest, ev: ProgressEvent) => any) | null" + }, + "ontimeout": { + "name": "ontimeout", + "overrideType": "((this: XMLHttpRequest, ev: ProgressEvent) => any) | null" + } + } + } + } + } + }, + "mixins": { + "mixin": { + "Animatable": { + "methods": { + "method": { + "animate": { + "name": "animate", + "signature": { + "0": { + "param": [ { - "type": "ReadableStreamBYOBReader" + "name": "keyframes", + "overrideType": "Keyframe[] | PropertyIndexedKeyframes" } - ], - "overrideType": "ReadableStreamDefaultReader | ReadableStreamBYOBReader" + ] + } + } + } + } + } + }, + "Body": { + "properties": { + "property": { + "body": { + "overrideType": "ReadableStream" + } + } + } + }, + "CanvasCompositing": { + "properties": { + "property": { + "globalCompositeOperation": { + "type": "GlobalCompositeOperation" + } + } + } + }, + "ChildNode": { + "extends": "Node" + }, + "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": "AllowSharedBufferSource", - // No SharedArrayBuffer in ES5, oh no. - "overrideType": "ArrayBuffer | ArrayBufferView" + "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?" + } + } + } + }, + "MessageEventTarget": { + "events": { + "event": [ + { + "name": "message", + "type": "MessageEvent" + }, + { + "name": "messageerror", + "type": "MessageEvent" } + ] + }, + "overrideThis": "T", + "typeParameters": [ + { + "name": "T" + } ] - }, - "namespaces": [ - { - "name": "console", - "methods": { - "method": { - "timeStamp": { - "name": "timeStamp", - "overrideSignatures": [ - "timeStamp(label?: string): void" - ] + }, + "ParentNode": { + "extends": "Node" + }, + "WebGLRenderingContextBase": { + "methods": { + "method": { + "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" + ], + "name": "getExtension" + }, + "pixelStorei": { + "name": "pixelStorei", + "signature": { + "0": { + "param": [ + { + "name": "param", + "additionalTypes": [ + "GLboolean" + ] } + ] } + } } - }, - { - "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" - } - ] - } - } + } + } + }, + "WindowOrWorkerGlobalScope": { + "methods": { + "method": { + "clearInterval": { + "signature": { + "0": { + "param": [ + { + "name": "id", + "optional": false, + "additionalTypes": [ + "undefined" + ] } + ] } - } - }, - { - "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": "" + } + }, + "clearTimeout": { + "signature": { + "0": { + "param": [ + { + "name": "id", + "optional": false, + "additionalTypes": [ + "undefined" + ] } + ] } + } + }, + "structuredClone": { + "signature": { + "0": { + "overrideType": "T", + "param": [ + { + "name": "value", + "overrideType": "T" + } + ], + "typeParameters": [ + { + "name": "T", + "default": "any" + } + ] + } + } } + } } + } + } + }, + "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": { + "exposed": "" + } + } + } + } + ], + "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", + "overrideType": "ArrayBuffer | ArrayBufferView" + } ] -} + } +} \ No newline at end of file diff --git a/inputfiles/removedTypes.jsonc b/inputfiles/removedTypes.jsonc index 2cceaf507..9d0b525a8 100644 --- a/inputfiles/removedTypes.jsonc +++ b/inputfiles/removedTypes.jsonc @@ -1,874 +1,834 @@ { - "callbackFunctions": { - "callbackFunction": { - "Function": null, - "PerformanceObserverCallback": { - "signature": { - "0": { - "param": ["options"] - } - } + "callbackFunctions": { + "callbackFunction": { + "Function": null, + "PerformanceObserverCallback": { + "signature": { + "0": { + "param": [ + "options" + ] + } + } + } + } + }, + "dictionaries": { + "dictionary": { + "AudioContextOptions": { + "members": { + "member": { + "renderSizeHint": null, + "sinkId": null + } + } + }, + "AudioEncoderConfig": { + "members": { + "member": { + "aac": null, + "flac": null + } + } + }, + "AuthenticationExtensionsClientInputs": { + "members": { + "member": { + "appidExclude": null, + "credBlob": null, + "credentialProtectionPolicy": null, + "enforceCredentialProtectionPolicy": null, + "getCredBlob": null, + "hmacGetSecret": null, + "largeBlob": null, + "payment": null + } + } + }, + "AuthenticationExtensionsClientOutputs": { + "members": { + "member": { + "appidExclude": null, + "hmacGetSecret": null, + "largeBlob": null + } + } + }, + "CanvasRenderingContext2DSettings": { + "members": { + "member": { + "colorType": null + } + } + }, + "CookieListItem": { + "members": { + "member": { + "domain": null, + "expires": null, + "partitioned": null, + "path": null, + "sameSite": null, + "secure": null + } + } + }, + "CredentialCreationOptions": { + "members": { + "member": { + "federated": null, + "mediation": null, + "password": null + } + } + }, + "CredentialRequestOptions": { + "members": { + "member": { + "digital": null, + "federated": null, + "identity": null, + "otp": null, + "password": null + } + } + }, + "DisplayMediaStreamOptions": { + "members": { + "member": { + "monitorTypeSurfaces": null, + "selfBrowserSurface": null, + "surfaceSwitching": null, + "systemAudio": null + } + } + }, + "EncodedVideoChunkInit": { + "members": { + "member": { + "transfer": null + } + } + }, + "EncodedVideoChunkMetadata": { + "members": { + "member": { + "alphaSideData": null, + "svc": null + } + } + }, + "FocusOptions": { + "members": { + "member": { + "focusVisible": null + } + } + }, + "FontFaceDescriptors": { + "members": { + "member": { + "variationSettings": null + } + } + }, + "GPURequestAdapterOptions": { + "members": { + "member": { + "featureLevel": null + } + } + }, + "GPUShaderModuleDescriptor": { + "members": { + "member": { + "compilationHints": null + } + } + }, + "GPUTextureViewDescriptor": { + "members": { + "member": { + "usage": null + } + } + }, + "GetAnimationsOptions": { + "members": { + "member": { + "pseudoElement": null + } + } + }, + "IntersectionObserverInit": { + "members": { + "member": { + "delay": null, + "scrollMargin": null, + "trackVisibility": null + } + } + }, + "KeyframeAnimationOptions": { + "members": { + "member": { + "rangeEnd": null, + "rangeStart": null + } + } + }, + "MediaCapabilitiesDecodingInfo": { + "members": { + "member": { + "keySystemAccess": null + } + } + }, + "MediaDecodingConfiguration": { + "members": { + "member": { + "keySystemConfiguration": null + } + } + }, + "MediaMetadataInit": { + "members": { + "member": { + "chapterInfo": null + } + } + }, + "MediaRecorderOptions": { + "members": { + "member": { + "audioBitrateMode": null, + "videoKeyFrameIntervalCount": null, + "videoKeyFrameIntervalDuration": null + } + } + }, + "MediaSessionActionDetails": { + "members": { + "member": { + "isActivating": null + } + } + }, + "MediaTrackCapabilities": { + "members": { + "member": { + "brightness": null, + "colorTemperature": null, + "contrast": null, + "cursor": null, + "exposureCompensation": null, + "exposureMode": null, + "exposureTime": null, + "focusDistance": null, + "focusMode": null, + "iso": null, + "latency": null, + "logicalSurface": null, + "pan": null, + "resizeMode": null, + "saturation": null, + "sharpness": null, + "tilt": null, + "torch": null, + "whiteBalanceMode": null, + "zoom": null + } + } + }, + "MediaTrackConstraintSet": { + "members": { + "member": { + "brightness": null, + "colorTemperature": null, + "contrast": null, + "cursor": null, + "exposureCompensation": null, + "exposureMode": null, + "exposureTime": null, + "focusDistance": null, + "focusMode": null, + "iso": null, + "latency": null, + "logicalSurface": null, + "pan": null, + "pointsOfInterest": null, + "resizeMode": null, + "restrictOwnAudio": null, + "saturation": null, + "sharpness": null, + "suppressLocalAudioPlayback": null, + "tilt": null, + "torch": null, + "whiteBalanceMode": null, + "zoom": null + } + } + }, + "MediaTrackSettings": { + "members": { + "member": { + "brightness": null, + "colorTemperature": null, + "contrast": null, + "cursor": null, + "exposureCompensation": null, + "exposureMode": null, + "exposureTime": null, + "focusDistance": null, + "focusMode": null, + "iso": null, + "latency": null, + "logicalSurface": null, + "pan": null, + "pointsOfInterest": null, + "resizeMode": null, + "restrictOwnAudio": null, + "saturation": null, + "sharpness": null, + "suppressLocalAudioPlayback": null, + "tilt": null, + "torch": null, + "whiteBalanceMode": null, + "zoom": null + } + } + }, + "MediaTrackSupportedConstraints": { + "members": { + "member": { + "brightness": null, + "colorTemperature": null, + "contrast": null, + "cursor": null, + "exposureCompensation": null, + "exposureMode": null, + "exposureTime": null, + "focusDistance": null, + "focusMode": null, + "iso": null, + "latency": null, + "logicalSurface": null, + "pan": null, + "pointsOfInterest": null, + "resizeMode": null, + "restrictOwnAudio": null, + "saturation": null, + "sharpness": null, + "suppressLocalAudioPlayback": null, + "tilt": null, + "torch": null, + "whiteBalanceMode": null, + "zoom": null + } + } + }, + "NotificationOptions": { + "members": { + "member": { + "actions": null, + "image": null, + "renotify": null, + "timestamp": null, + "vibrate": null + } + } + }, + "OfflineAudioContextOptions": { + "members": { + "member": { + "renderSizeHint": null + } + } + }, + "OpusEncoderConfig": { + "members": { + "member": { + "application": null, + "signal": null + } + } + }, + "PaymentDetailsUpdate": { + "members": { + "member": { + "payerErrors": null + } + } + }, + "PaymentOptions": { + "members": { + "member": { + "requestBillingAddress": null + } + } + }, + "PaymentValidationErrors": { + "members": { + "member": { + "paymentMethod": null + } + } + }, + "PerformanceObserverInit": { + "members": { + "member": { + "durationThreshold": null + } + } + }, + "PointerEventInit": { + "members": { + "member": { + "persistentDeviceId": null + } + } + }, + "PopStateEventInit": { + "members": { + "member": { + "hasUAVisualTransition": null + } + } + }, + "PublicKeyCredentialCreationOptions": { + "members": { + "member": { + "attestationFormats": null, + "hints": null + } + } + }, + "PublicKeyCredentialCreationOptionsJSON": { + "members": { + "member": { + "attestationFormats": null + } + } + }, + "PublicKeyCredentialRequestOptions": { + "members": { + "member": { + "hints": null + } + } + }, + "RTCConfiguration": { + "members": { + "member": { + "peerIdentity": null + } + } + }, + "RTCDataChannelInit": { + "members": { + "member": { + "priority": null + } + } + }, + "RTCEncodedAudioFrameMetadata": { + "members": { + "member": { + "captureTime": null, + "mimeType": null, + "receiveTime": null, + "rtpTimestamp": null, + "senderCaptureTimeOffset": null + } + } + }, + "RTCEncodedVideoFrameMetadata": { + "members": { + "member": { + "captureTime": null, + "mimeType": null, + "receiveTime": null, + "rtpTimestamp": null, + "senderCaptureTimeOffset": null + } + } + }, + "RTCInboundRtpStreamStats": { + "members": { + "member": { + "corruptionMeasurements": null, + "powerEfficientDecoder": null, + "totalCorruptionProbability": null, + "totalSquaredCorruptionProbability": null + } + } + }, + "RTCOutboundRtpStreamStats": { + "members": { + "member": { + "encoderImplementation": null, + "powerEfficientEncoder": null + } + } + }, + "RTCRtpEncodingParameters": { + "members": { + "member": { + "codec": null, + "scalabilityMode": null + } + } + }, + "ReadableStreamReadResult": null, + "RequestInit": { + "members": { + "member": { + "adAuctionHeaders": null, + "attributionReporting": null, + "duplex": null, + "privateToken": null, + "sharedStorageWritable": null, + "targetAddressSpace": null + } + } + }, + "ScrollIntoViewOptions": { + "members": { + "member": { + "container": null + } + } + }, + "Transformer": { + "members": { + "member": { + "cancel": null + } + } + }, + "UIEventInit": { + "members": { + "member": { + "sourceCapabilities": null + } + } + }, + "VideoConfiguration": { + "members": { + "member": { + "spatialScalability": null + } + } + }, + "VideoDecoderConfig": { + "members": { + "member": { + "flip": null, + "rotation": null + } + } + }, + "VideoEncoderConfig": { + "members": { + "member": { + "hevc": null + } + } + }, + "VideoEncoderEncodeOptions": { + "members": { + "member": { + "av1": null, + "hevc": null, + "vp9": null + } + } + }, + "VideoFrameBufferInit": { + "members": { + "member": { + "flip": null, + "metadata": null, + "rotation": null, + "transfer": null + } + } + }, + "VideoFrameInit": { + "members": { + "member": { + "flip": null, + "metadata": null, + "rotation": null + } + } + }, + "WebGLContextAttributes": { + "members": { + "member": { + "xrCompatible": null + } + } + }, + "WebTransportOptions": { + "members": { + "member": { + "anticipatedConcurrentIncomingBidirectionalStreams": null, + "anticipatedConcurrentIncomingUnidirectionalStreams": null, + "protocols": null + } + } + }, + "WebTransportSendStreamOptions": { + "members": { + "member": { + "waitUntilAvailable": null + } + } + } + } + }, + "enums": { + "enum": { + "AuthenticatorTransport": { + "value": [ + "smart-card" + ] + }, + "ConnectionType": { + "value": [ + "wimax" + ] + }, + "GPUBlendFactor": { + "value": [ + "one-minus-src1", + "one-minus-src1-alpha", + "src1", + "src1-alpha" + ] + }, + "GPUFeatureName": { + "value": [ + "clip-distances", + "dual-source-blending", + "float32-blendable", + "texture-compression-astc-sliced-3d", + "texture-compression-bc-sliced-3d" + ] + }, + "GPUVertexFormat": { + "value": [ + "float16", + "sint16", + "sint8", + "snorm16", + "snorm8", + "uint16", + "uint8", + "unorm16", + "unorm8", + "unorm8x4-bgra" + ] + }, + "MediaSessionAction": { + "value": [ + "enterpictureinpicture", + "hangup", + "nextslide", + "previousslide", + "togglecamera", + "togglemicrophone", + "togglescreenshare", + "voiceactivity" + ] + }, + "RequestDestination": { + "value": [ + "json" + ] + }, + "ValueType": null, + "VideoColorPrimaries": { + "value": [ + "bt2020", + "smpte432" + ] + }, + "VideoMatrixCoefficients": { + "value": [ + "bt2020-ncl" + ] + }, + "VideoPixelFormat": { + "value": [ + "I420AP10", + "I420AP12", + "I420P10", + "I420P12", + "I422A", + "I422AP10", + "I422AP12", + "I422P10", + "I422P12", + "I444A", + "I444AP10", + "I444AP12", + "I444P10", + "I444P12" + ] + }, + "VideoTransferCharacteristics": { + "value": [ + "hlg", + "linear", + "pq" + ] + } + } + }, + "interfaces": { + "interface": { + "CSSRule": { + "constants": { + "constant": { + "MARGIN_RULE": null + } + } + }, + "Clipboard": { + "methods": { + "method": { + "read": { + "signature": { + "0": { + "param": [ + "formats" + ] + } + } } + } } - }, - "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 - ] + }, + "Document": { + "methods": { + "method": { + "elementFromPoint": null, + "elementsFromPoint": null + } + } + }, + "HTMLElement": { + "methods": { + "method": { + "showPopover": { + "signature": { + "0": { + "param": [ + "options" + ] + } + } } + } } - }, - "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 + }, + "IntersectionObserverEntry": { + "constructor": null + }, + "OffscreenCanvasRenderingContext2D": { + "implements": [ + "CanvasSettings" + ] + }, + "PaymentResponse": { + "methods": { + "method": { + "complete": { + "signature": { + "0": { + "param": [ + "details" + ] + } + } } + } } - }, - "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, - - // 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, - - // 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 - - // 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 - - // 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 - } - } + }, + "RTCEncodedAudioFrame": { + "constructor": null + }, + "RTCEncodedVideoFrame": { + "constructor": null + }, + "ReadableStreamBYOBReader": { + "methods": { + "method": { + "read": { + "signature": { + "0": { + "param": [ + "options" + ] + } + } } + } } - }, - "typedefs": { - "typedef": [ - "ArrayBufferView" - ] + }, + "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 + } } -} + }, + "typedefs": { + "typedef": [ + "ArrayBufferView" + ] + } +} \ No newline at end of file From 7cae40f8d6760a079a871158c911329303a8d618 Mon Sep 17 00:00:00 2001 From: Bashamega Date: Sun, 6 Apr 2025 08:36:50 +0200 Subject: [PATCH 06/10] revert --- inputfiles/addedTypes.jsonc | 3093 ++++++------ inputfiles/overridingTypes.jsonc | 7961 +++++++++++++++--------------- inputfiles/removedTypes.jsonc | 1668 ++++--- 3 files changed, 6398 insertions(+), 6324 deletions(-) diff --git a/inputfiles/addedTypes.jsonc b/inputfiles/addedTypes.jsonc index fcd149a00..c7c174fa1 100644 --- a/inputfiles/addedTypes.jsonc +++ b/inputfiles/addedTypes.jsonc @@ -1,1573 +1,1614 @@ { - "callbackInterfaces": { - "interface": {} - }, - "dictionaries": { - "dictionary": { - "KeyboardEventInit": { - "members": { - "member": { - "charCode": { - "deprecated": true - }, - "keyCode": { - "deprecated": true - } - } - } - }, - "MemoryDescriptor": { - "members": { - "member": { - "shared": { - "name": "shared", - "type": "boolean" - } - } - } - }, - "ReadableStreamReadDoneResult": { - "members": { - "member": { - "done": { - "name": "done", - "overrideType": "true", - "required": true - }, - "value": { - "name": "value", - "overrideType": "T | undefined", - "required": true - } - } - }, - "name": "ReadableStreamReadDoneResult", - "typeParameters": [ - { - "name": "T" - } - ] - }, - "ReadableStreamReadValueResult": { - "members": { - "member": { - "done": { - "name": "done", - "overrideType": "false", - "required": true - }, - "value": { - "name": "value", - "overrideType": "T", - "required": true - } - } - }, - "name": "ReadableStreamReadValueResult", - "typeParameters": [ - { - "name": "T" - } - ] - }, - "UnderlyingByteSource": { - "members": { - "member": { - "autoAllocateChunkSize": { - "name": "autoAllocateChunkSize", - "type": "unsigned long long" - }, - "cancel": { - "name": "cancel", - "type": "UnderlyingSourceCancelCallback" - }, - "pull": { - "name": "pull", - "overrideType": "(controller: ReadableByteStreamController) => void | PromiseLike" - }, - "start": { - "name": "start", - "overrideType": "(controller: ReadableByteStreamController) => any" - }, - "type": { - "name": "type", - "overrideType": "\"bytes\"", - "required": true - } - } - }, - "name": "UnderlyingByteSource" - }, - "UnderlyingDefaultSource": { - "members": { - "member": { - "cancel": { - "name": "cancel", - "type": "UnderlyingSourceCancelCallback" - }, - "pull": { - "name": "pull", - "overrideType": "(controller: ReadableStreamDefaultController) => void | PromiseLike" - }, - "start": { - "name": "start", - "overrideType": "(controller: ReadableStreamDefaultController) => any" - }, - "type": { - "name": "type", - "type": "undefined" - } - } - }, - "name": "UnderlyingDefaultSource", - "typeParameters": [ - { - "name": "R", - "default": "any" - } - ] - }, - "ValueTypeMap": { - "exposed": "Window Worker Worklet", - "legacyNamespace": "WebAssembly", - "members": { - "member": { - "anyfunc": { - "name": "anyfunc", - "overrideType": "Function", - "required": 1 - }, - "externref": { - "name": "externref", - "overrideType": "any", - "required": 1 - }, - "f32": { - "name": "f32", - "overrideType": "number", - "required": 1 - }, - "f64": { - "name": "f64", - "overrideType": "number", - "required": 1 - }, - "i32": { - "name": "i32", - "overrideType": "number", - "required": 1 - }, - "i64": { - "name": "i64", - "overrideType": "bigint", - "required": 1 - }, - "v128": { - "name": "v128", - "overrideType": "never", - "required": 1 - } + "mixins": { + "mixin": { + "AbstractWorker": { + "events": { + "event": [ + { + "name": "error", + "type": "ErrorEvent" + } + ] + } + }, + "DocumentAndElementEventHandlers": { + "events": { + "event": [ + { + "name": "copy", + "type": "ClipboardEvent" + }, + { + "name": "cut", + "type": "ClipboardEvent" + }, + { + "name": "paste", + "type": "ClipboardEvent" + } + ] + } + }, + "DocumentOrShadowRoot": { + // Manually moved from Document + // See https://github.com/w3c/csswg-drafts/issues/5886 and https://github.com/w3c/csswg-drafts/issues/556 + "methods": { + "method": { + "elementFromPoint": { + "name": "elementFromPoint", + "overrideSignatures": [ + "elementFromPoint(x: number, y: number): Element | null" + ] + }, + "elementsFromPoint": { + "name": "elementsFromPoint", + "overrideSignatures": [ + "elementsFromPoint(x: number, y: number): Element[]" + ] + } + } + } + }, + "GlobalEventHandlers": { + "events": { + "event": [ + { + "name": "abort", + "type": "UIEvent" + }, + { + "name": "auxclick", + "type": "MouseEvent" + }, + { + "name": "beforeinput", + "type": "InputEvent" + }, + { + "name": "blur", + "type": "FocusEvent" + }, + { + "name": "click", + "type": "MouseEvent" + }, + { + "name": "compositionstart", + "type": "CompositionEvent" + }, + { + "name": "compositionupdate", + "type": "CompositionEvent" + }, + { + "name": "compositionend", + "type": "CompositionEvent" + }, + { + "name": "drag", + "type": "DragEvent" + }, + { + "name": "dragend", + "type": "DragEvent" + }, + { + "name": "dragenter", + "type": "DragEvent" + }, + { + "name": "dragleave", + "type": "DragEvent" + }, + { + "name": "dragover", + "type": "DragEvent" + }, + { + "name": "dragstart", + "type": "DragEvent" + }, + { + "name": "drop", + "type": "DragEvent" + }, + { + "name": "error", + "type": "ErrorEvent" + }, + { + "name": "focus", + "type": "FocusEvent" + }, + { + "name": "focusin", + "type": "FocusEvent" + }, + { + "name": "focusout", + "type": "FocusEvent" + }, + { + "name": "formdata", + "type": "FormDataEvent" + }, + { + "name": "keydown", + "type": "KeyboardEvent" + }, + { + "name": "keypress", + "type": "KeyboardEvent" + }, + { + "name": "keyup", + "type": "KeyboardEvent" + }, + { + "name": "mousedown", + "type": "MouseEvent" + }, + { + "name": "mouseenter", + "type": "MouseEvent" + }, + { + "name": "mouseleave", + "type": "MouseEvent" + }, + { + "name": "mousemove", + "type": "MouseEvent" + }, + { + "name": "mouseout", + "type": "MouseEvent" + }, + { + "name": "mouseover", + "type": "MouseEvent" + }, + { + "name": "mouseup", + "type": "MouseEvent" + }, + { + "name": "progress", + "type": "ProgressEvent" + }, + { + "name": "resize", + "type": "UIEvent" + }, + { + "name": "wheel", + "type": "WheelEvent" + }, + { + "name": "securitypolicyviolation", + "type": "SecurityPolicyViolationEvent" + }, + { + "name": "submit", + "type": "SubmitEvent" + }, + { + "name": "dblclick", + "type": "MouseEvent" + }, + { + "name": "contextmenu", + "type": "MouseEvent" + } + ] + } + }, + "WebGLRenderingContextBase": { + "properties": { + "property": { + "canvas": { + "exposed": "Window" + } + } + } + }, + "WindowEventHandlers": { + "events": { + "event": [ + { + "name": "beforeunload", + "type": "BeforeUnloadEvent" + }, + { + "name": "gamepadconnected", + "type": "GamepadEvent" + }, + { + "name": "gamepaddisconnected", + "type": "GamepadEvent" + }, + { + "name": "hashchange", + "type": "HashChangeEvent" + }, + { + "name": "message", + "type": "MessageEvent" + }, + { + "name": "messageerror", + "type": "MessageEvent" + }, + { + "name": "pagehide", + "type": "PageTransitionEvent" + }, + { + "name": "pageshow", + "type": "PageTransitionEvent" + }, + { + "name": "popstate", + "type": "PopStateEvent" + }, + { + "name": "storage", + "type": "StorageEvent" + }, + { + "name": "unhandledrejection", + "type": "PromiseRejectionEvent" + }, + { + "name": "rejectionhandled", + "type": "PromiseRejectionEvent" + } + ] + } } - }, - "name": "ValueTypeMap" } - } + }, + "callbackInterfaces": { + "interface": {} }, "enums": { - "enum": { - "AutoFillAddressKind": { - "name": "AutoFillAddressKind", - "value": [ - "shipping", - "billing" - ] - }, - "AutoFillBase": { - "name": "AutoFillBase", - "value": [ - "off", - "on", - "" - ] - }, - "AutoFillContactField": { - "name": "AutoFillContactField", - "value": [ - "tel", - "tel-country-code", - "tel-national", - "tel-area-code", - "tel-local", - "tel-local-prefix", - "tel-local-suffix", - "tel-extension", - "email" - ] - }, - "AutoFillContactKind": { - "name": "AutoFillContactKind", - "value": [ - "home", - "work", - "mobile" - ] - }, - "AutoFillCredentialField": { - "name": "AutoFillCredentialField", - "value": [ - "webauthn" - ] - }, - "AutoFillNormalField": { - "name": "AutoFillNormalField", - "value": [ - "name", - "honorific-prefix", - "given-name", - "additional-name", - "family-name", - "honorific-suffix", - "username", - "new-password", - "current-password", - "one-time-code", - "organization", - "street-address", - "address-line1", - "address-line2", - "address-line3", - "address-level4", - "address-level3", - "address-level2", - "address-level1", - "country", - "country-name", - "postal-code", - "cc-name", - "cc-given-name", - "cc-family-name", - "cc-number", - "cc-exp", - "cc-exp-month", - "cc-exp-year", - "cc-csc", - "cc-type", - "transaction-currency", - "transaction-amount", - "bday-day", - "bday-month", - "bday-year" - ] - }, - "ClientType": { - "name": "ClientTypes" - }, - "FontDisplay": { - "name": "FontDisplay", - "value": [ - "auto", - "block", - "swap", - "fallback", - "optional" - ] - }, - "GlobalCompositeOperation": { - "name": "GlobalCompositeOperation", - "value": [ - "source-over", - "source-in", - "source-out", - "source-atop", - "destination-over", - "destination-in", - "destination-out", - "destination-atop", - "lighter", - "copy", - "xor", - "multiply", - "screen", - "overlay", - "darken", - "lighten", - "color-dodge", - "color-burn", - "hard-light", - "soft-light", - "difference", - "exclusion", - "hue", - "saturation", - "color", - "luminosity" - ] - }, - "InsertPosition": { - "name": "InsertPosition", - "value": [ - "beforebegin", - "beforeend", - "afterbegin", - "afterend" - ] - }, - "PermissionName": { - "name": "PermissionName", - "value": [ - "camera", - "geolocation", - "microphone", - "midi", - "notifications", - "persistent-storage", - "push", - "screen-wake-lock", - "storage-access" - ] - }, - "RTCStatsIceCandidatePairState": { - "value": [ - "inprogress" - ] + "enum": { + "InsertPosition": { + "name": "InsertPosition", + "value": [ + "beforebegin", + "beforeend", + "afterbegin", + "afterend" + ] + }, + "FontDisplay": { + "name": "FontDisplay", + // https://w3c.github.io/csswg-drafts/css-fonts-4/#font-display-desc + "value": [ + "auto", + "block", + "swap", + "fallback", + "optional" + ] + }, + "ClientType": { + "name": "ClientTypes" + }, + "RTCStatsIceCandidatePairState": { + "value": [ + "inprogress" + ] + }, + "GlobalCompositeOperation": { + "name": "GlobalCompositeOperation", + "value": [ + "source-over", + "source-in", + "source-out", + "source-atop", + "destination-over", + "destination-in", + "destination-out", + "destination-atop", + "lighter", + "copy", + "xor", + "multiply", + "screen", + "overlay", + "darken", + "lighten", + "color-dodge", + "color-burn", + "hard-light", + "soft-light", + "difference", + "exclusion", + "hue", + "saturation", + "color", + "luminosity" + ] + }, + "PermissionName": { + "name": "PermissionName", + // This is a subset of the permissions defined in the spec: + // https://w3c.github.io/powerful-features-registry/#registry-table-of-powerful-features + // Please add a feature only when it's supported by multiple engines. + "value": [ + // Full support: https://developer.mozilla.org/en-US/docs/Web/API/Permissions_API#browser_compatibility + "camera", + // Full support: https://developer.mozilla.org/en-US/docs/Web/API/Geolocation_API#browser_compatibility + "geolocation", + // Full support: https://developer.mozilla.org/en-US/docs/Web/API/Permissions_API#browser_compatibility + "microphone", + // Gecko and Blink: https://developer.mozilla.org/en-US/docs/Web/API/Web_MIDI_API#browser_compatibility + "midi", + // Full support: https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API#browser_compatibility + "notifications", + // Gecko and Blink: https://developer.mozilla.org/en-US/docs/Web/API/Storage_API#browser_compatibility + "persistent-storage", + // Full support: https://developer.mozilla.org/en-US/docs/Web/API/Push_API#browser_compatibility + "push", + // Full support: https://developer.mozilla.org/en-US/docs/Web/API/Screen_Wake_Lock_API#browser_compatibility + "screen-wake-lock", + // Full support: https://developer.mozilla.org/en-US/docs/Web/API/Storage_Access_API#browser_compatibility + "storage-access" + ] + }, + "AutoFillBase": { + "name": "AutoFillBase", + "value": [ + // Off + "off", + // Automatic + "on", + "" + ] + }, + "AutoFillAddressKind": { + "name": "AutoFillAddressKind", + "value": [ + "shipping", + "billing" + ] + }, + "AutoFillNormalField": { + "name": "AutoFillNormalField", + "value": [ + "name", + "honorific-prefix", + "given-name", + "additional-name", + "family-name", + "honorific-suffix", + + "username", + "new-password", + "current-password", + // Supported in iOS Safari too even though WPT tests + // for Safari currently fail as of 2023-06. + "one-time-code", + + "organization", + "street-address", + "address-line1", + "address-line2", + "address-line3", + "address-level4", + "address-level3", + "address-level2", + "address-level1", + "country", + "country-name", + "postal-code", + + "cc-name", + "cc-given-name", + "cc-family-name", + "cc-number", + "cc-exp", + "cc-exp-month", + "cc-exp-year", + "cc-csc", + "cc-type", + "transaction-currency", + "transaction-amount", + + "bday-day", + "bday-month", + "bday-year" + ] + }, + "AutoFillContactKind": { + "name": "AutoFillContactKind", + "value": [ + "home", + "work", + "mobile" + ] + }, + "AutoFillContactField": { + "name": "AutoFillContactField", + "value": [ + "tel", + "tel-country-code", + "tel-national", + "tel-area-code", + "tel-local", + "tel-local-prefix", + "tel-local-suffix", + "tel-extension", + "email" + ] + }, + "AutoFillCredentialField": { + "name": "AutoFillCredentialField", + "value": [ + "webauthn" + ] + } } - } }, "interfaces": { - "interface": { - "Attr": { - "name": "Attr", - "properties": { - "property": { - "ownerDocument": { - "name": "ownerDocument", - "readonly": true, - "type": "Document" - } - } - } - }, - "AudioWorkletProcessorImpl": { - "exposed": "AudioWorklet", - "extends": "AudioWorkletProcessor", - "methods": { - "method": { - "process": { - "name": "process", - "overrideSignatures": [ - "process(inputs: Float32Array[][], outputs: Float32Array[][], parameters: Record): boolean" - ] - } - } - }, - "name": "AudioWorkletProcessorImpl", - "noInterfaceObject": true - }, - "BroadcastChannel": { - "events": { - "event": [ - { - "name": "message", - "type": "MessageEvent" - }, - { - "name": "messageerror", - "type": "MessageEvent" - } - ] - } - }, - "CSSStyleDeclaration": { - "name": "CSSStyleDeclaration", - "properties": { - "property": { - "imageOrientation": { - "deprecated": true - }, - "wordWrap": { - "deprecated": true - } - } - } - }, - "CharacterData": { - "name": "CharacterData", - "properties": { - "property": { - "ownerDocument": { - "name": "ownerDocument", - "readonly": true, - "type": "Document" - } - } - } - }, - "ClientRect": { - "deprecated": true, - "exposed": "Window", - "extends": "DOMRect", - "name": "ClientRect", - "noInterfaceObject": true - }, - "CompileError": { - "constructor": { - "overrideSignatures": [ - "new(message?: string): CompileError", - "(message?: string): CompileError" - ] - }, - "extends": "Error", - "legacyNamespace": "WebAssembly", - "name": "CompileError" - }, - "DOMMatrixReadOnly": { - "methods": { - "method": { - "scaleNonUniform": { - "deprecated": true - } - } - } - }, - "DeviceMotionEventAcceleration": { - "noInterfaceObject": true - }, - "DeviceMotionEventRotationRate": { - "noInterfaceObject": true - }, - "Document": { - "events": { - "event": [ - { - "name": "DOMContentLoaded", - "type": "Event" - } - ] - }, - "methods": { - "method": { - "caretRangeFromPoint": { - "deprecated": true, - "name": "caretRangeFromPoint", - "overrideSignatures": [ - "caretRangeFromPoint(x: number, y: number): Range | null" - ] - }, - "createElementNS": { - "additionalSignatures": [ - "createElementNS(namespaceURI: \"http://www.w3.org/1999/xhtml\", qualifiedName: string): HTMLElement", - "createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: K): SVGElementTagNameMap[K]", - "createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: string): SVGElement", - "createElementNS(namespaceURI: \"http://www.w3.org/1998/Math/MathML\", qualifiedName: K): MathMLElementTagNameMap[K]", - "createElementNS(namespaceURI: \"http://www.w3.org/1998/Math/MathML\", qualifiedName: string): MathMLElement", - "createElementNS(namespaceURI: string | null, qualifiedName: string, options?: ElementCreationOptions): Element" + "interface": { + // ImportMeta is not a true DOM interface, but we are forced to declare it as one in order to emit method definitions. + // We cannot define methods as dictionary properties with function types, + // as this would cause conflicts with ImportMeta method overrides in places like @types/node. + "ImportMeta": { + "name": "ImportMeta", + "exposed": "Window Worker", + "noInterfaceObject": true, + "properties": { + "property": { + "url": { + "name": "url", + "type": "DOMString" + } + } + }, + "methods": { + "method": { + "resolve": { + "name": "resolve", + "signature": [ + { + "param": [ + { + "name": "specifier", + "type": "DOMString" + } + ], + "type": "DOMString" + } + ] + } + } + } + }, + "AudioWorkletProcessorImpl": { + "name": "AudioWorkletProcessorImpl", + "extends": "AudioWorkletProcessor", + "methods": { + "method": { + "process": { + "name": "process", + "overrideSignatures": [ + "process(inputs: Float32Array[][], outputs: Float32Array[][], parameters: Record): boolean" + ] + } + } + }, + "exposed": "AudioWorklet", + "noInterfaceObject": true + }, + "BroadcastChannel": { + "events": { + "event": [ + { + "name": "message", + "type": "MessageEvent" + }, + { + "name": "messageerror", + "type": "MessageEvent" + } + ] + } + }, + "CompileError": { + "name": "CompileError", + "extends": "Error", + "legacyNamespace": "WebAssembly", + "constructor": { + "overrideSignatures": [ + "new(message?: string): CompileError", + "(message?: string): CompileError" + ] + } + }, + "DeviceMotionEventAcceleration": { + "noInterfaceObject": true + }, + "DeviceMotionEventRotationRate": { + "noInterfaceObject": true + }, + "HTMLImageElement": { + "name": "HTMLImageElement", + "properties": { + "property": { + "decoding": { + "name": "decoding", + "overrideType": "\"async\" | \"sync\" | \"auto\"" + }, + "loading": { + "overrideType": "\"eager\" | \"lazy\"" + } + } + } + }, + "HTMLTableDataCellElement": { + "name": "HTMLTableDataCellElement", + "extends": "HTMLTableCellElement", + "noInterfaceObject": true, + "deprecated": "prefer HTMLTableCellElement", + "exposed": "Window" + }, + "HTMLTableHeaderCellElement": { + "name": "HTMLTableHeaderCellElement", + "extends": "HTMLTableCellElement", + "noInterfaceObject": true, + "deprecated": "prefer HTMLTableCellElement", + "exposed": "Window" + }, + "HTMLDocument": { + "name": "HTMLDocument", + "extends": "Document", + "deprecated": "use Document", + "exposed": "Window" + }, + "HTMLMediaElement": { + "events": { + "event": [ + { + "name": "encrypted", + "type": "MediaEncryptedEvent" + } + ] + } + }, + "CSSStyleDeclaration": { + "name": "CSSStyleDeclaration", + "properties": { + "property": { + "imageOrientation": { + "deprecated": true + }, + "wordWrap": { + "deprecated": true + } + } + } + }, + "Window": { + "name": "Window", + "methods": { + "method": { + "captureEvents": { + "deprecated": true + } + } + }, + "overrideIndexSignatures": [ + "[index: number]: Window" ], - "name": "createElementNS" - } - } - }, - "properties": { - "property": { - "ownerDocument": { - "name": "ownerDocument", - "overrideType": "null", - "readonly": true - } - } - } - }, - "DocumentType": { - "name": "DocumentType", - "properties": { - "property": { - "ownerDocument": { - "name": "ownerDocument", - "readonly": true, - "type": "Document" - } - } - } - }, - "Element": { - "methods": { - "method": { - "closest": { - "additionalSignatures": [ - "closest(selector: K): HTMLElementTagNameMap[K] | null", - "closest(selector: K): SVGElementTagNameMap[K] | null", - "closest(selector: K): MathMLElementTagNameMap[K] | null" + "events": { + "event": [ + { + "name": "devicemotion", + "type": "DeviceMotionEvent" + }, + { + "name": "deviceorientation", + "type": "DeviceOrientationEvent" + }, + { + "name": "deviceorientationabsolute", + "type": "DeviceOrientationEvent" + }, + { + "name": "gamepadconnected", + "type": "GamepadEvent" + }, + { + "name": "gamepaddisconnected", + "type": "GamepadEvent" + }, + { + "name": "DOMContentLoaded", + "type": "Event" + } + ] + } + }, + "URLSearchParams": { + "name": "URLSearchParams", + "constructor": { + "signature": { + "0": { + "param": [ + { + "name": "init", + "additionalTypes": ["URLSearchParams"] + } + ] + } + } + } + }, + "NodeListOf": { + "name": "NodeListOf", + "typeParameters": [ + { + "name": "TNode", + "extends": "Node" + } + ], + "exposed": "Window", + "extends": "NodeList", + "methods": { + "method": { + "item": { + "name": "item", + "overrideSignatures": [ + "item(index: number): TNode" + ] + } + } + }, + "noInterfaceObject": true, + "overrideIndexSignatures": [ + "[index: number]: TNode" ], - "signature": { - "0": { - "overrideType": "E", - "typeParameters": [ - { - "name": "E", - "extends": "Element", - "default": "Element" - } + "iterator": { + "kind": "iterable", + "type": [ + { + "overrideType": "TNode" + } ] - } } - }, - "getElementsByClassName": { - "name": "getElementsByClassName", - "signature": { - "0": { - "overrideType": "HTMLCollectionOf" - } + }, + "HTMLCollectionOf": { + "name": "HTMLCollectionOf", + "typeParameters": [ + { + "name": "T", + "extends": "Element" + } + ], + "exposed": "Window", + "extends": "HTMLCollection", + "methods": { + "method": { + "item": { + "getter": true, + "signature": [ + { + "nullable": true, + "overrideType": "T", + "param": [ + { + "name": "index", + "type": "unsigned long" + } + ] + } + ], + "specs": "html5", + "name": "item" + }, + "namedItem": { + "name": "namedItem", + "overrideSignatures": [ + "namedItem(name: string): T | null" + ] + } + } + }, + "noInterfaceObject": true + }, + "Element": { + "name": "Element", + "methods": { + "method": { + "getElementsByClassName": { + "name": "getElementsByClassName", + "signature": { + "0": { + "overrideType": "HTMLCollectionOf" + } + } + }, + "closest": { + "additionalSignatures": [ + "closest(selector: K): HTMLElementTagNameMap[K] | null", + "closest(selector: K): SVGElementTagNameMap[K] | null", + "closest(selector: K): MathMLElementTagNameMap[K] | null" + ], + "signature": { + "0": { + "typeParameters": [ + { + "name": "E", + "extends": "Element", + "default": "Element" + } + ], + "overrideType": "E" + } + } + }, + "insertAdjacentElement": { + "signature": { + "0": { + "param": [ + { + "name": "where", + "type": "InsertPosition" + } + ] + } + } + }, + "insertAdjacentHTML": { + "signature": { + "0": { + "param": [ + { + "name": "position", + "type": "InsertPosition" + } + ] + } + } + }, + "insertAdjacentText": { + "signature": { + "0": { + "param": [ + { + "name": "where", + "type": "InsertPosition" + } + ] + } + } + } + } + }, + "properties": { + "property": { + "ownerDocument": { + "name": "ownerDocument", + "readonly": true, + "type": "Document" + } + } + } + }, + // This is used in many DT libraries, via ckeditor + "ClientRect": { + "name": "ClientRect", + "exposed": "Window", + "deprecated": true, + "extends": "DOMRect", + "noInterfaceObject": true + }, + /* + Keeping EventListener and EventListenerObject isn't the most elegant way to handle + the event listeners, but we need to keep the EventListener as an extendable interface + for libraries like angular. + */ + "EventListener": { + "name": "EventListener", + "noInterfaceObject": true, + "methods": { + "method": { + // This is a hack to add a call signature, but I think it's reasonable + // as it means we don't have to add a call signatures section to the + // emitter for this one case. + "callable": { + "overrideSignatures": [ + "(evt: Event): void" + ] + } + } + } + }, + "EventListenerObject": { + "name": "EventListenerObject", + "noInterfaceObject": true, + "methods": { + "method": { + "handleEvent": { + "overrideSignatures": [ + "handleEvent(object: Event): void" + ] + } + } } - }, - "insertAdjacentElement": { - "signature": { - "0": { - "param": [ - { - "name": "where", - "type": "InsertPosition" - } + }, + "Document": { + "methods": { + "method": { + "createElementNS": { + "name": "createElementNS", + "additionalSignatures": [ + "createElementNS(namespaceURI: \"http://www.w3.org/1999/xhtml\", qualifiedName: string): HTMLElement", + "createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: K): SVGElementTagNameMap[K]", + "createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: string): SVGElement", + "createElementNS(namespaceURI: \"http://www.w3.org/1998/Math/MathML\", qualifiedName: K): MathMLElementTagNameMap[K]", + "createElementNS(namespaceURI: \"http://www.w3.org/1998/Math/MathML\", qualifiedName: string): MathMLElement", + "createElementNS(namespaceURI: string | null, qualifiedName: string, options?: ElementCreationOptions): Element" + ] + }, + "caretRangeFromPoint": { + "name": "caretRangeFromPoint", + "deprecated": true, + "overrideSignatures": [ + "caretRangeFromPoint(x: number, y: number): Range | null" + ] + } + } + }, + "properties": { + "property": { + "ownerDocument": { + "name": "ownerDocument", + "readonly": true, + "overrideType": "null" + } + } + }, + "events": { + "event": [ + { + "name": "DOMContentLoaded", + "type": "Event" + } ] - } } - }, - "insertAdjacentHTML": { - "signature": { - "0": { - "param": [ - { - "name": "position", - "type": "InsertPosition" - } + }, + // This is used in the React d.ts files, and not including + // it would force an update for anyone using React. + "StyleMedia": { + "name": "StyleMedia", + "exposed": "Window", + "noInterfaceObject": true, + "deprecated": true, + "properties": { + "property": { + "type": { + "name": "type", + "type": "DOMString" + } + } + }, + "methods": { + "method": { + "matchMedium": { + "name": "matchMedium", + "overrideSignatures": [ + "matchMedium(mediaquery: string): boolean" + ] + } + } + } + }, + "Navigator": { + "name": "Navigator", + "properties": { + "property": { + "doNotTrack": { + "name": "doNotTrack", + "readonly": true, + "nullable": true, + "type": "DOMString" + } + } + } + }, + "HTMLIFrameElement": { + "name": "HTMLIFrameElement", + "properties": { + "property": { + "referrerPolicy": { + "type": "ReferrerPolicy" + }, + "loading": { + "name": "loading", + "overrideType": "\"eager\" | \"lazy\"" + } + } + } + }, + "IDBDatabase": { + "name": "IDBDatabase", + "events": { + "event": [ + { + "name": "versionchange", + "type": "IDBVersionChangeEvent" + } ] - } } - }, - "insertAdjacentText": { - "signature": { - "0": { - "param": [ - { - "name": "where", - "type": "InsertPosition" - } + }, + "IDBOpenDBRequest": { + "name": "IDBOpenDBRequest", + "extends": "IDBRequest", + "events": { + "event": [ + { + "name": "upgradeneeded", + "type": "IDBVersionChangeEvent" + }, + { + "name": "blocked", + "type": "IDBVersionChangeEvent" + } ] - } } - } - } - }, - "name": "Element", - "properties": { - "property": { - "ownerDocument": { - "name": "ownerDocument", - "readonly": true, - "type": "Document" - } - } - } - }, - "EventListener": { - "methods": { - "method": { - "callable": { - "overrideSignatures": [ - "(evt: Event): void" - ] - } - } - }, - "name": "EventListener", - "noInterfaceObject": true - }, - "EventListenerObject": { - "methods": { - "method": { - "handleEvent": { - "overrideSignatures": [ - "handleEvent(object: Event): void" - ] - } - } - }, - "name": "EventListenerObject", - "noInterfaceObject": true - }, - "EventSource": { - "events": { - "event": [ - { - "name": "message", - "type": "MessageEvent" - } - ] - } - }, - "FileSystemDirectoryHandle": { - "properties": { - "property": { - "kind": { - "name": "kind", - "overrideType": "\"directory\"", - "readonly": true - } - } - } - }, - "FileSystemFileHandle": { - "properties": { - "property": { - "kind": { - "name": "kind", - "overrideType": "\"file\"", - "readonly": true - } - } - } - }, - "HTMLBodyElement": { - "properties": { - "property": { - "onorientationchange": { - "deprecated": true - } - } - } - }, - "HTMLCollectionOf": { - "exposed": "Window", - "extends": "HTMLCollection", - "methods": { - "method": { - "item": { - "getter": true, - "name": "item", - "signature": [ - { - "nullable": true, - "overrideType": "T", - "param": [ - { - "name": "index", - "type": "unsigned long" - } + }, + "UIEvent": { + "properties": { + "property": { + "which": { + "deprecated": true + } + } + } + }, + "SpeechSynthesisUtterance": { + "events": { + "event": [ + { + "name": "start", + "type": "SpeechSynthesisEvent" + }, + { + "name": "end", + "type": "SpeechSynthesisEvent" + }, + { + "name": "error", + "type": "SpeechSynthesisErrorEvent" + }, + { + "name": "pause", + "type": "SpeechSynthesisEvent" + }, + { + "name": "resume", + "type": "SpeechSynthesisEvent" + }, + { + "name": "mark", + "type": "SpeechSynthesisEvent" + }, + { + "name": "boundary", + "type": "SpeechSynthesisEvent" + } ] - } + } + }, + "TextTrackList": { + "events": { + "event": [ + { + "name": "addtrack", + "type": "TrackEvent" + }, + { + "name": "removetrack", + "type": "TrackEvent" + } + ] + } + }, + "DOMMatrixReadOnly": { + "methods": { + "method": { + "scaleNonUniform": { + "deprecated": true + } + } + } + }, + "EventSource": { + "events": { + "event": [ + { + "name": "message", + "type": "MessageEvent" + } + ] + } + }, + "HTMLBodyElement": { + "properties": { + "property": { + "onorientationchange": { + "deprecated": true + } + } + } + }, + "HTMLInputElement": { + "properties": { + "property": { + "labels": { + "overrideType": "NodeListOf" + } + } + } + }, + "HTMLLinkElement": { + "properties": { + "property": { + "charset": { + "deprecated": true + }, + "rev": { + "deprecated": true + }, + "target": { + "deprecated": true + } + } + } + }, + "KHR_parallel_shader_compile": { + "overrideExposed": "Window Worker" + }, + "OVR_multiview2": { + "overrideExposed": "Window Worker" + }, + // The spec removed `timestamp` but browsers still have it. + // https://github.com/w3c/webrtc-encoded-transform/pull/204 + "RTCEncodedAudioFrame": { + "properties": { + "property": { + "timestamp": { + "mdnUrl": "https://developer.mozilla.org/docs/Web/API/RTCEncodedAudioFrame/timestamp", + "name": "timestamp", + "type": "long long", + "readonly": true + } + } + } + }, + "RTCEncodedVideoFrame": { + "properties": { + "property": { + "timestamp": { + "mdnUrl": "https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame/timestamp", + "name": "timestamp", + "type": "long long", + "readonly": true + } + } + } + }, + "RTCDTMFSender": { + "events": { + "event": [ + { + "name": "tonechange", + "type": "RTCDTMFToneChangeEvent" + } + ] + } + }, + "RuntimeError": { + "name": "RuntimeError", + "extends": "Error", + "legacyNamespace": "WebAssembly", + "constructor": { + "overrideSignatures": [ + "new(message?: string): RuntimeError", + "(message?: string): RuntimeError" + ] + } + }, + "SVGStyleElement": { + "properties": { + "property": { + "disabled": { + "name": "disabled", + "type": "boolean" + } + } + } + }, + "LinkError": { + "name": "LinkError", + "extends": "Error", + "legacyNamespace": "WebAssembly", + "constructor": { + "overrideSignatures": [ + "new(message?: string): LinkError", + "(message?: string): LinkError" + ] + } + }, + "MediaRecorder": { + "events": { + "event": [ + { + "name": "dataavailable", + "type": "BlobEvent" + } + ] + } + }, + "MediaStream": { + "events": { + "event": [ + { + "name": "addtrack", + "type": "MediaStreamTrackEvent" + }, + { + "name": "removetrack", + "type": "MediaStreamTrackEvent" + } + ] + } + }, + "ProgressEvent": { + "typeParameters": [ + { + "name": "T", + "extends": "EventTarget", + "default": "EventTarget" + } ], - "specs": "html5" - }, - "namedItem": { - "name": "namedItem", - "overrideSignatures": [ - "namedItem(name: string): T | null" - ] - } - } - }, - "name": "HTMLCollectionOf", - "noInterfaceObject": true, - "typeParameters": [ - { - "name": "T", - "extends": "Element" - } - ] - }, - "HTMLDocument": { - "deprecated": "use Document", - "exposed": "Window", - "extends": "Document", - "name": "HTMLDocument" - }, - "HTMLIFrameElement": { - "name": "HTMLIFrameElement", - "properties": { - "property": { - "loading": { - "name": "loading", - "overrideType": "\"eager\" | \"lazy\"" - }, - "referrerPolicy": { - "type": "ReferrerPolicy" - } - } - } - }, - "HTMLImageElement": { - "name": "HTMLImageElement", - "properties": { - "property": { - "decoding": { - "name": "decoding", - "overrideType": "\"async\" | \"sync\" | \"auto\"" - }, - "loading": { - "overrideType": "\"eager\" | \"lazy\"" - } - } - } - }, - "HTMLInputElement": { - "properties": { - "property": { - "labels": { - "overrideType": "NodeListOf" - } - } - } - }, - "HTMLLinkElement": { - "properties": { - "property": { - "charset": { - "deprecated": true - }, - "rev": { - "deprecated": true - }, - "target": { - "deprecated": true - } - } - } - }, - "HTMLMediaElement": { - "events": { - "event": [ - { - "name": "encrypted", - "type": "MediaEncryptedEvent" - } - ] - } - }, - "HTMLTableDataCellElement": { - "deprecated": "prefer HTMLTableCellElement", - "exposed": "Window", - "extends": "HTMLTableCellElement", - "name": "HTMLTableDataCellElement", - "noInterfaceObject": true - }, - "HTMLTableHeaderCellElement": { - "deprecated": "prefer HTMLTableCellElement", - "exposed": "Window", - "extends": "HTMLTableCellElement", - "name": "HTMLTableHeaderCellElement", - "noInterfaceObject": true - }, - "IDBDatabase": { - "events": { - "event": [ - { - "name": "versionchange", - "type": "IDBVersionChangeEvent" - } - ] - }, - "name": "IDBDatabase" - }, - "IDBOpenDBRequest": { - "events": { - "event": [ - { - "name": "upgradeneeded", - "type": "IDBVersionChangeEvent" - }, - { - "name": "blocked", - "type": "IDBVersionChangeEvent" - } - ] - }, - "extends": "IDBRequest", - "name": "IDBOpenDBRequest" - }, - "ImportMeta": { - "exposed": "Window Worker", - "methods": { - "method": { - "resolve": { - "name": "resolve", - "signature": [ - { - "param": [ - { - "name": "specifier", - "type": "DOMString" - } - ], - "type": "DOMString" - } - ] - } - } - }, - "name": "ImportMeta", - "noInterfaceObject": true, - "properties": { - "property": { - "url": { - "name": "url", - "type": "DOMString" - } - } - } - }, - "KHR_parallel_shader_compile": { - "overrideExposed": "Window Worker" - }, - "LinkError": { - "constructor": { - "overrideSignatures": [ - "new(message?: string): LinkError", - "(message?: string): LinkError" - ] - }, - "extends": "Error", - "legacyNamespace": "WebAssembly", - "name": "LinkError" - }, - "MediaRecorder": { - "events": { - "event": [ - { - "name": "dataavailable", - "type": "BlobEvent" - } - ] - } - }, - "MediaStream": { - "events": { - "event": [ - { - "name": "addtrack", - "type": "MediaStreamTrackEvent" - }, - { - "name": "removetrack", - "type": "MediaStreamTrackEvent" - } - ] - } - }, - "Navigator": { - "name": "Navigator", - "properties": { - "property": { - "doNotTrack": { - "name": "doNotTrack", - "nullable": true, - "readonly": true, - "type": "DOMString" - } - } - } - }, - "NodeListOf": { - "exposed": "Window", - "extends": "NodeList", - "iterator": { - "kind": "iterable", - "type": [ - { - "overrideType": "TNode" - } - ] - }, - "methods": { - "method": { - "item": { - "name": "item", - "overrideSignatures": [ - "item(index: number): TNode" - ] - } - } - }, - "name": "NodeListOf", - "noInterfaceObject": true, - "overrideIndexSignatures": [ - "[index: number]: TNode" - ], - "typeParameters": [ - { - "name": "TNode", - "extends": "Node" - } - ] - }, - "OVR_multiview2": { - "overrideExposed": "Window Worker" - }, - "ProcessingInstruction": { - "name": "ProcessingInstruction", - "properties": { - "property": { - "ownerDocument": { - "name": "ownerDocument", - "readonly": true, - "type": "Document" - } - } - } - }, - "ProgressEvent": { - "properties": { - "property": { - "target": { - "name": "target", - "nullable": true, - "overrideType": "T", - "readonly": true - } - } - }, - "typeParameters": [ - { - "name": "T", - "extends": "EventTarget", - "default": "EventTarget" - } - ] - }, - "RTCDTMFSender": { - "events": { - "event": [ - { - "name": "tonechange", - "type": "RTCDTMFToneChangeEvent" - } - ] - } - }, - "RTCEncodedAudioFrame": { - "properties": { - "property": { - "timestamp": { - "mdnUrl": "https://developer.mozilla.org/docs/Web/API/RTCEncodedAudioFrame/timestamp", - "name": "timestamp", - "readonly": true, - "type": "long long" - } - } - } - }, - "RTCEncodedVideoFrame": { - "properties": { - "property": { - "timestamp": { - "mdnUrl": "https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame/timestamp", - "name": "timestamp", - "readonly": true, - "type": "long long" - } - } - } - }, - "RuntimeError": { - "constructor": { - "overrideSignatures": [ - "new(message?: string): RuntimeError", - "(message?: string): RuntimeError" - ] - }, - "extends": "Error", - "legacyNamespace": "WebAssembly", - "name": "RuntimeError" - }, - "SVGStyleElement": { - "properties": { - "property": { - "disabled": { - "name": "disabled", - "type": "boolean" - } - } - } - }, - "SharedWorkerGlobalScope": { - "events": { - "event": [ - { - "name": "connect", - "type": "MessageEvent" - } - ] - } - }, - "SpeechSynthesisUtterance": { - "events": { - "event": [ - { - "name": "start", - "type": "SpeechSynthesisEvent" - }, - { - "name": "end", - "type": "SpeechSynthesisEvent" - }, - { - "name": "error", - "type": "SpeechSynthesisErrorEvent" - }, - { - "name": "pause", - "type": "SpeechSynthesisEvent" - }, - { - "name": "resume", - "type": "SpeechSynthesisEvent" - }, - { - "name": "mark", - "type": "SpeechSynthesisEvent" - }, - { - "name": "boundary", - "type": "SpeechSynthesisEvent" - } - ] - } - }, - "StyleMedia": { - "deprecated": true, - "exposed": "Window", - "methods": { - "method": { - "matchMedium": { - "name": "matchMedium", - "overrideSignatures": [ - "matchMedium(mediaquery: string): boolean" - ] - } - } - }, - "name": "StyleMedia", - "noInterfaceObject": true, - "properties": { - "property": { - "type": { - "name": "type", - "type": "DOMString" - } - } - } - }, - "TextTrackList": { - "events": { - "event": [ - { - "name": "addtrack", - "type": "TrackEvent" - }, - { - "name": "removetrack", - "type": "TrackEvent" - } - ] - } - }, - "UIEvent": { - "properties": { - "property": { - "which": { - "deprecated": true - } - } - } - }, - "URLSearchParams": { - "constructor": { - "signature": { - "0": { - "param": [ - { - "name": "init", - "additionalTypes": [ - "URLSearchParams" + "properties": { + "property": { + "target": { + "name": "target", + "readonly": true, + "nullable": true, + "overrideType": "T" + } + } + } + }, + "SharedWorkerGlobalScope": { + "events": { + "event": [ + { + "name": "connect", + "type": "MessageEvent" + } ] - } - ] - } - } - }, - "name": "URLSearchParams" - }, - "WebSocket": { - "events": { - "event": [ - { - "name": "close", - "type": "CloseEvent" - } - ] - } - }, - "Window": { - "events": { - "event": [ - { - "name": "devicemotion", - "type": "DeviceMotionEvent" - }, - { - "name": "deviceorientation", - "type": "DeviceOrientationEvent" - }, - { - "name": "deviceorientationabsolute", - "type": "DeviceOrientationEvent" - }, - { - "name": "gamepadconnected", - "type": "GamepadEvent" - }, - { - "name": "gamepaddisconnected", - "type": "GamepadEvent" - }, - { - "name": "DOMContentLoaded", - "type": "Event" - } - ] - }, - "methods": { - "method": { - "captureEvents": { - "deprecated": true - } + } + }, + "Attr": { + "name": "Attr", + "properties": { + "property": { + "ownerDocument": { + "name": "ownerDocument", + "readonly": true, + "type": "Document" + } + } + } + }, + "CharacterData": { + "name": "CharacterData", + "properties": { + "property": { + "ownerDocument": { + "name": "ownerDocument", + "readonly": true, + "type": "Document" + } + } + } + }, + "DocumentType": { + "name": "DocumentType", + "properties": { + "property": { + "ownerDocument": { + "name": "ownerDocument", + "readonly": true, + "type": "Document" + } + } + } + }, + "ProcessingInstruction": { + "name": "ProcessingInstruction", + "properties": { + "property": { + "ownerDocument": { + "name": "ownerDocument", + "readonly": true, + "type": "Document" + } + } + } + }, + "WebSocket": { + "events": { + "event": [ + { + "name": "close", + "type": "CloseEvent" + } + ] + } + }, + "WorkerGlobalScope": { + "events": { + "event": [ + { + "name": "rejectionhandled", + "type": "PromiseRejectionEvent" + }, + { + "name": "unhandledrejection", + "type": "PromiseRejectionEvent" + } + ] + } + }, + "FileSystemFileHandle": { + "properties": { + "property": { + "kind": { + "name": "kind", + "readonly": true, + "overrideType": "\"file\"" + } + } + } + }, + "FileSystemDirectoryHandle": { + "properties": { + "property": { + "kind": { + "name": "kind", + "readonly": true, + "overrideType": "\"directory\"" + } + } + } } - }, - "name": "Window", - "overrideIndexSignatures": [ - "[index: number]: Window" - ] - }, - "WorkerGlobalScope": { - "events": { - "event": [ - { - "name": "rejectionhandled", - "type": "PromiseRejectionEvent" - }, - { - "name": "unhandledrejection", - "type": "PromiseRejectionEvent" - } - ] - } } - } }, - "mixins": { - "mixin": { - "AbstractWorker": { - "events": { - "event": [ - { - "name": "error", - "type": "ErrorEvent" - } - ] - } - }, - "DocumentAndElementEventHandlers": { - "events": { - "event": [ - { - "name": "copy", - "type": "ClipboardEvent" - }, - { - "name": "cut", - "type": "ClipboardEvent" - }, - { - "name": "paste", - "type": "ClipboardEvent" - } - ] - } - }, - "DocumentOrShadowRoot": { - "methods": { - "method": { - "elementFromPoint": { - "name": "elementFromPoint", - "overrideSignatures": [ - "elementFromPoint(x: number, y: number): Element | null" - ] - }, - "elementsFromPoint": { - "name": "elementsFromPoint", - "overrideSignatures": [ - "elementsFromPoint(x: number, y: number): Element[]" - ] - } - } - } - }, - "GlobalEventHandlers": { - "events": { - "event": [ - { - "name": "abort", - "type": "UIEvent" - }, - { - "name": "auxclick", - "type": "MouseEvent" - }, - { - "name": "beforeinput", - "type": "InputEvent" - }, - { - "name": "blur", - "type": "FocusEvent" - }, - { - "name": "click", - "type": "MouseEvent" - }, - { - "name": "compositionstart", - "type": "CompositionEvent" - }, - { - "name": "compositionupdate", - "type": "CompositionEvent" - }, - { - "name": "compositionend", - "type": "CompositionEvent" - }, - { - "name": "drag", - "type": "DragEvent" - }, - { - "name": "dragend", - "type": "DragEvent" - }, - { - "name": "dragenter", - "type": "DragEvent" - }, - { - "name": "dragleave", - "type": "DragEvent" - }, - { - "name": "dragover", - "type": "DragEvent" - }, - { - "name": "dragstart", - "type": "DragEvent" - }, - { - "name": "drop", - "type": "DragEvent" - }, - { - "name": "error", - "type": "ErrorEvent" - }, - { - "name": "focus", - "type": "FocusEvent" - }, - { - "name": "focusin", - "type": "FocusEvent" - }, - { - "name": "focusout", - "type": "FocusEvent" - }, - { - "name": "formdata", - "type": "FormDataEvent" - }, - { - "name": "keydown", - "type": "KeyboardEvent" - }, - { - "name": "keypress", - "type": "KeyboardEvent" - }, - { - "name": "keyup", - "type": "KeyboardEvent" - }, - { - "name": "mousedown", - "type": "MouseEvent" - }, - { - "name": "mouseenter", - "type": "MouseEvent" - }, - { - "name": "mouseleave", - "type": "MouseEvent" - }, - { - "name": "mousemove", - "type": "MouseEvent" - }, - { - "name": "mouseout", - "type": "MouseEvent" - }, - { - "name": "mouseover", - "type": "MouseEvent" - }, - { - "name": "mouseup", - "type": "MouseEvent" - }, - { - "name": "progress", - "type": "ProgressEvent" - }, - { - "name": "resize", - "type": "UIEvent" - }, - { - "name": "wheel", - "type": "WheelEvent" - }, - { - "name": "securitypolicyviolation", - "type": "SecurityPolicyViolationEvent" - }, - { - "name": "submit", - "type": "SubmitEvent" - }, - { - "name": "dblclick", - "type": "MouseEvent" - }, - { - "name": "contextmenu", - "type": "MouseEvent" - } - ] - } - }, - "WebGLRenderingContextBase": { - "properties": { - "property": { - "canvas": { - "exposed": "Window" - } + "dictionaries": { + "dictionary": { + "KeyboardEventInit": { + "members": { + "member": { + "charCode": { + "deprecated": true + }, + "keyCode": { + "deprecated": true + } + } + } + }, + "MemoryDescriptor": { + "members": { + "member": { + "shared": { + "name": "shared", + "type": "boolean" + } + } + } + }, + "ReadableStreamReadDoneResult": { + "name": "ReadableStreamReadDoneResult", + "typeParameters": [ + { + "name": "T" + } + ], + "members": { + "member": { + "done": { + "name": "done", + "overrideType": "true", + "required": true + }, + "value": { + "name": "value", + "overrideType": "T | undefined", + "required": true + } + } + } + }, + "ReadableStreamReadValueResult": { + "name": "ReadableStreamReadValueResult", + "typeParameters": [ + { + "name": "T" + } + ], + "members": { + "member": { + "done": { + "name": "done", + "overrideType": "false", + "required": true + }, + "value": { + "name": "value", + "overrideType": "T", + "required": true + } + } + } + }, + "UnderlyingByteSource": { + "name": "UnderlyingByteSource", + "members": { + "member": { + "type": { + "name": "type", + "required": true, + "overrideType": "\"bytes\"" + }, + "autoAllocateChunkSize": { + "name": "autoAllocateChunkSize", + "type": "unsigned long long" + }, + "start": { + "name": "start", + "overrideType": "(controller: ReadableByteStreamController) => any" + }, + "pull": { + "name": "pull", + "overrideType": "(controller: ReadableByteStreamController) => void | PromiseLike" + }, + "cancel": { + "name": "cancel", + "type": "UnderlyingSourceCancelCallback" + } + } + } + }, + "UnderlyingDefaultSource": { + "name": "UnderlyingDefaultSource", + "typeParameters": [ + { + "name": "R", + "default": "any" + } + ], + "members": { + "member": { + "type": { + "name": "type", + "type": "undefined" + }, + "start": { + "name": "start", + "overrideType": "(controller: ReadableStreamDefaultController) => any" + }, + "pull": { + "name": "pull", + "overrideType": "(controller: ReadableStreamDefaultController) => void | PromiseLike" + }, + "cancel": { + "name": "cancel", + "type": "UnderlyingSourceCancelCallback" + } + } + } + }, + "ValueTypeMap": { + "name": "ValueTypeMap", + "legacyNamespace": "WebAssembly", + "exposed":"Window Worker Worklet", + "members": { + "member": { + "anyfunc": { + "name": "anyfunc", + "overrideType": "Function", + "required": 1 + }, + "externref": { + "name": "externref", + "overrideType": "any", + "required": 1 + }, + "f32": { + "name": "f32", + "overrideType": "number", + "required": 1 + }, + "f64": { + "name": "f64", + "overrideType": "number", + "required": 1 + }, + "i32": { + "name": "i32", + "overrideType": "number", + "required": 1 + }, + "i64": { + "name": "i64", + "overrideType": "bigint", + "required": 1 + }, + "v128": { + "name": "v128", + "overrideType": "never", + "required": 1 + } + } + } } - } - }, - "WindowEventHandlers": { - "events": { - "event": [ - { - "name": "beforeunload", - "type": "BeforeUnloadEvent" - }, - { - "name": "gamepadconnected", - "type": "GamepadEvent" - }, - { - "name": "gamepaddisconnected", - "type": "GamepadEvent" - }, - { - "name": "hashchange", - "type": "HashChangeEvent" - }, - { - "name": "message", - "type": "MessageEvent" - }, - { - "name": "messageerror", - "type": "MessageEvent" - }, - { - "name": "pagehide", - "type": "PageTransitionEvent" - }, - { - "name": "pageshow", - "type": "PageTransitionEvent" - }, - { - "name": "popstate", - "type": "PopStateEvent" - }, - { - "name": "storage", - "type": "StorageEvent" - }, - { - "name": "unhandledrejection", - "type": "PromiseRejectionEvent" - }, - { - "name": "rejectionhandled", - "type": "PromiseRejectionEvent" - } - ] - } } - } }, "typedefs": { - "typedef": [ - { - "type": { - "0": { - "subtype": { - "overrideType": "[string, string]" - } - } - }, - "additionalTypes": [ - "Headers" - ], - "name": "HeadersInit" - }, - { - "overrideType": "number | string | Date | BufferSource | IDBValidKey[]", - "name": "IDBValidKey" - }, - { - "type": { - "0": { - "type": "Algorithm" - } - }, - "name": "AlgorithmIdentifier" - }, - { - "name": "MutationRecordType", - "overrideType": "\"attributes\" | \"characterData\" | \"childList\"" - }, - { - "name": "WindowProxy", - "type": "Window" - }, - { - "name": "ValueType", - "legacyNamespace": "WebAssembly", - "overrideType": "keyof ValueTypeMap" - }, - { - "name": "ExportValue", - "legacyNamespace": "WebAssembly", - "overrideType": "Function | Global | Memory | Table" - }, - { - "name": "Exports", - "legacyNamespace": "WebAssembly", - "type": "record", - "subtype": [ + "typedef": [ { - "type": "DOMString" + "type": { + "0": { + "subtype": { + "overrideType": "[string, string]" + } + } + }, + "additionalTypes": ["Headers"], + "name": "HeadersInit" }, { - "type": "ExportValue" - } - ] - }, - { - "name": "ImportValue", - "legacyNamespace": "WebAssembly", - "overrideType": "ExportValue | number" - }, - { - "name": "ModuleImports", - "legacyNamespace": "WebAssembly", - "type": "record", - "subtype": [ + "overrideType": "number | string | Date | BufferSource | IDBValidKey[]", + "name": "IDBValidKey" + }, { - "type": "DOMString" + "type": { + "0": { + "type": "Algorithm" + } + }, + "name": "AlgorithmIdentifier" }, { - "type": "ImportValue" - } - ] - }, - { - "name": "Imports", - "legacyNamespace": "WebAssembly", - "type": "record", - "subtype": [ + "name": "MutationRecordType", + "overrideType": "\"attributes\" | \"characterData\" | \"childList\"" + }, { - "type": "DOMString" + "name": "WindowProxy", + "type": "Window" }, { - "type": "ModuleImports" - } - ] - }, - { - "name": "ReadableStreamReadResult", - "typeParameters": [ + "name": "ValueType", + "legacyNamespace": "WebAssembly", + "overrideType": "keyof ValueTypeMap" + }, { - "name": "T" - } - ], - "type": [ + "name": "ExportValue", + "legacyNamespace": "WebAssembly", + "overrideType": "Function | Global | Memory | Table" + }, { - "type": "ReadableStreamReadValueResult" + "name": "Exports", + "legacyNamespace": "WebAssembly", + "type": "record", + "subtype": [ + { + "type": "DOMString" + }, + { + "type": "ExportValue" + } + ] }, { - "type": "ReadableStreamReadDoneResult" - } - ], - "overrideType": "ReadableStreamReadValueResult | ReadableStreamReadDoneResult" - }, - { - "name": "EventListenerOrEventListenerObject", - "overrideType": "EventListener | EventListenerObject" - }, - { - "name": "OptionalPrefixToken", - "typeParameters": [ + "name": "ImportValue", + "legacyNamespace": "WebAssembly", + "overrideType": "ExportValue | number" + }, { - "name": "T extends string" - } - ], - "overrideType": "`${T} ` | \"\"" - }, - { - "name": "OptionalPostfixToken", - "typeParameters": [ + "name": "ModuleImports", + "legacyNamespace": "WebAssembly", + "type": "record", + "subtype": [ + { + "type": "DOMString" + }, + { + "type": "ImportValue" + } + ] + }, + { + "name": "Imports", + "legacyNamespace": "WebAssembly", + "type": "record", + "subtype": [ + { + "type": "DOMString" + }, + { + "type": "ModuleImports" + } + ] + }, { - "name": "T extends string" + "name": "ReadableStreamReadResult", + "typeParameters": [ + { + "name": "T" + } + ], + "type": [ + { + "type": "ReadableStreamReadValueResult" + }, + { + "type": "ReadableStreamReadDoneResult" + } + ], + "overrideType": "ReadableStreamReadValueResult | ReadableStreamReadDoneResult" + }, + { + "name": "EventListenerOrEventListenerObject", + "overrideType": "EventListener | EventListenerObject" + }, + { + "name": "OptionalPrefixToken", + "typeParameters": [ + { + "name": "T extends string" + } + ], + "overrideType": "`${T} ` | \"\"" + }, + { + "name": "OptionalPostfixToken", + "typeParameters": [ + { + "name": "T extends string" + } + ], + "overrideType": "` ${T}` | \"\"" + }, + { + "name": "AutoFillSection", + // Note: this will also eagerly match any invalid string + // after section- instead of stopping at the first whitespace. + // It should be something like /section-\S/ if it were supported. + "overrideType": "`section-${string}`" + }, + { + "name": "AutoFillField", + "overrideType": "AutoFillNormalField | `${OptionalPrefixToken}${AutoFillContactField}`" + }, + { + // See the full list of possible autofill values for the `autocomplete` attribute: + // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#determine-a-field's-category + // Full spec at https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill. + "name": "AutoFill", + "overrideType": "AutoFillBase | `${OptionalPrefixToken}${OptionalPrefixToken}${AutoFillField}${OptionalPostfixToken}`" } - ], - "overrideType": "` ${T}` | \"\"" - }, - { - "name": "AutoFillSection", - "overrideType": "`section-${string}`" - }, - { - "name": "AutoFillField", - "overrideType": "AutoFillNormalField | `${OptionalPrefixToken}${AutoFillContactField}`" - }, - { - "name": "AutoFill", - "overrideType": "AutoFillBase | `${OptionalPrefixToken}${OptionalPrefixToken}${AutoFillField}${OptionalPostfixToken}`" - } - ] + ] } } \ No newline at end of file diff --git a/inputfiles/overridingTypes.jsonc b/inputfiles/overridingTypes.jsonc index 120e8da30..dbf0e4d2f 100644 --- a/inputfiles/overridingTypes.jsonc +++ b/inputfiles/overridingTypes.jsonc @@ -1,4172 +1,4165 @@ { - "callbackFunctions": { - "callbackFunction": { - "AudioWorkletProcessorConstructor": { - "overrideSignatures": [ - "new (options: any): AudioWorkletProcessorImpl" - ] - }, - "CustomElementConstructor": { - "overrideSignatures": [ - "new (...params: any[]): HTMLElement" - ] - }, - "LockGrantedCallback": { - "signature": { - "0": { - "overrideType": "T" - } - }, - "typeParameters": [ - { - "name": "T" - } - ] - }, - "OnErrorEventHandlerNonNull": { - "signature": { - "0": { - "param": [ - { - "name": "error", - "overrideType": "Error" - } - ] - } - } - }, - "QueuingStrategySize": { - "signature": { - "0": { - "param": [ - { - "name": "chunk", - "overrideType": "T" - } - ] - } - }, - "typeParameters": [ - { - "name": "T", - "default": "any" - } - ] - }, - "TransformerFlushCallback": { - "signature": { - "0": { - "param": [ - { - "name": "controller", - "overrideType": "TransformStreamDefaultController" - } - ] - } - }, - "typeParameters": [ - { - "name": "O" - } - ] - }, - "TransformerStartCallback": { - "signature": { - "0": { - "param": [ - { - "name": "controller", - "overrideType": "TransformStreamDefaultController" - } - ] - } - }, - "typeParameters": [ - { - "name": "O" - } - ] - }, - "TransformerTransformCallback": { - "signature": { - "0": { - "param": [ - { - "name": "chunk", - "overrideType": "I" + "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" + } + ] }, - { - "name": "controller", - "overrideType": "TransformStreamDefaultController" + "properties": { + "property": { + "onerror": { + "overrideType": "OnErrorEventHandler" + }, + "ontouchcancel": { + "optional": true + }, + "ontouchend": { + "optional": true + }, + "ontouchmove": { + "optional": true + }, + "ontouchstart": { + "optional": true + } + } } - ] - } - }, - "typeParameters": [ - { - "name": "I" }, - { - "name": "O" - } - ] - }, - "UnderlyingSinkWriteCallback": { - "signature": { - "0": { - "param": [ - { - "name": "chunk", - "overrideType": "W" - } - ] - } - }, - "typeParameters": [ - { - "name": "W" - } - ] - }, - "UnderlyingSourcePullCallback": { - "signature": { - "0": { - "param": [ - { - "name": "controller", - "overrideType": "ReadableStreamController" - } - ] - } - }, - "typeParameters": [ - { - "name": "R" - } - ] - }, - "UnderlyingSourceStartCallback": { - "signature": { - "0": { - "param": [ - { - "name": "controller", - "overrideType": "ReadableStreamController" - } - ] - } - }, - "typeParameters": [ - { - "name": "R" - } - ] - } - } - }, - "callbackInterfaces": { - "interface": {} - }, - "dictionaries": { - "dictionary": { - "AuthenticatorSelectionCriteria": { - "members": { - "member": { - "authenticatorAttachment": { - "type": "AuthenticatorAttachment" - }, - "residentKey": { - "type": "ResidentKeyRequirement" - }, - "userVerification": { - "type": "UserVerificationRequirement" - } - } - } - }, - "BaseComputedKeyframe": { - "members": { - "member": { - "composite": { - "required": true - }, - "computedOffset": { - "required": true - }, - "easing": { - "required": true - }, - "offset": { - "required": true - } - } - }, - "name": "ComputedKeyframe", - "overrideIndexSignatures": [ - "[property: string]: string | number | null | undefined" - ] - }, - "BaseKeyframe": { - "name": "Keyframe", - "overrideIndexSignatures": [ - "[property: string]: string | number | null | undefined" - ] - }, - "BasePropertyIndexedKeyframe": { - "name": "PropertyIndexedKeyframes", - "overrideIndexSignatures": [ - "[property: string]: string | string[] | number | null | (number | null)[] | undefined" - ] - }, - "ClientQueryOptions": { - "members": { - "member": { - "type": { - "name": "type", - "overrideType": "ClientTypes" - } - } - } - }, - "CryptoKeyPair": { - "members": { - "member": { - "privateKey": { - "required": true - }, - "publicKey": { - "required": true - } - } - } - }, - "CustomEventInit": { - "members": { - "member": { - "detail": { - "name": "detail", - "overrideType": "T" - } - } - }, - "typeParameters": [ - { - "name": "T", - "default": "any" - } - ] - }, - "FontFaceDescriptors": { - "members": { - "member": { - "display": { - "type": "FontDisplay" - } - } - } - }, - "GlobalDescriptor": { - "legacyNamespace": "WebAssembly", - "members": { - "member": { - "value": { - "overrideType": "T" - } - } - }, - "typeParameters": [ - { - "name": "T", - "extends": "ValueType", - "default": "ValueType" - } - ] - }, - "MemoryDescriptor": { - "legacyNamespace": "WebAssembly" - }, - "MessageEventInit": { - "members": { - "member": { - "data": { - "name": "data", - "overrideType": "T" - } - } - }, - "typeParameters": [ - { - "name": "T", - "default": "any" - } - ] - }, - "ModuleExportDescriptor": { - "legacyNamespace": "WebAssembly" - }, - "ModuleImportDescriptor": { - "legacyNamespace": "WebAssembly" - }, - "PermissionDescriptor": { - "members": { - "member": { - "name": { - "type": "PermissionName" - } - } - } - }, - "PromiseRejectionEventInit": { - "members": { - "member": { - "promise": { - "overrideType": "Promise" - } - } - } - }, - "PublicKeyCredentialCreationOptions": { - "members": { - "member": { - "attestation": { - "type": "AttestationConveyancePreference" - } - } - } - }, - "PublicKeyCredentialDescriptor": { - "members": { - "member": { - "transports": { - "subtype": { - "type": "AuthenticatorTransport" - } - }, - "type": { - "type": "PublicKeyCredentialType" - } - } - } - }, - "PublicKeyCredentialParameters": { - "members": { - "member": { - "type": { - "type": "PublicKeyCredentialType" - } - } - } - }, - "PublicKeyCredentialRequestOptions": { - "members": { - "member": { - "userVerification": { - "type": "UserVerificationRequirement" - } - } - } - }, - "QueuingStrategy": { - "members": { - "member": { - "size": { - "overrideType": "QueuingStrategySize" - } - } - }, - "typeParameters": [ - { - "name": "T", - "default": "any" - } - ] - }, - "ReadableWritablePair": { - "members": { - "member": { - "readable": { - "overrideType": "ReadableStream" - }, - "writable": { - "overrideType": "WritableStream" + "HTMLOrSVGElement": { + "properties": { + "property": { + "nonce": { + "name": "nonce?" + } + } } - } - }, - "typeParameters": [ - { - "name": "R", - "default": "any" }, - { - "name": "W", - "default": "any" - } - ] - }, - "RequestInit": { - "members": { - "member": { - "window": { - "overrideType": "null" - } - } - } - }, - "StructuredSerializeOptions": { - "members": { - "member": { - "transfer": { - "overrideType": "Transferable[]" - } - } - } - }, - "TableDescriptor": { - "legacyNamespace": "WebAssembly" - }, - "TextEncoderEncodeIntoResult": { - "members": { - "member": { - "read": { - "required": true - }, - "written": { - "required": true - } - } - } - }, - "TokenBinding": { - "members": { - "member": { - "status": { - "type": "TokenBindingStatus" - } - } - } - }, - "Transformer": { - "members": { - "member": { - "flush": { - "overrideType": "TransformerFlushCallback" - }, - "readableType": { - "overrideType": "undefined" - }, - "start": { - "overrideType": "TransformerStartCallback" - }, - "transform": { - "overrideType": "TransformerTransformCallback" - }, - "writableType": { - "overrideType": "undefined" - } - } - }, - "typeParameters": [ - { - "name": "I", - "default": "any" + "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"] + } + ] + } + } + } + } + } }, - { - "name": "O", - "default": "any" - } - ] - }, - "UIEventInit": { - "members": { - "member": { - "which": { - "deprecated": true - } - } - } - }, - "UnderlyingSink": { - "members": { - "member": { - "type": { - "overrideType": "undefined" - }, - "write": { - "overrideType": "UnderlyingSinkWriteCallback" - } - } - }, - "typeParameters": [ - { - "name": "W", - "default": "any" - } - ] - }, - "UnderlyingSource": { - "members": { - "member": { - "pull": { - "overrideType": "UnderlyingSourcePullCallback" - }, - "start": { - "overrideType": "UnderlyingSourceStartCallback" + "CanvasCompositing": { + "properties": { + "property": { + "globalCompositeOperation": { + "type": "GlobalCompositeOperation" + } + } } + }, + "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"] + } + ] + } + } + } + } + } } - }, - "typeParameters": [ - { - "name": "R", - "default": "any" - } - ] - }, - "WebAssemblyInstantiatedSource": { - "legacyNamespace": "WebAssembly" } - } }, - "enums": { - "enum": { - "ImageOrientation": { - "value": [ - "none" - ] - }, - "ImportExportKind": { - "legacyNamespace": "WebAssembly" - }, - "TableKind": { - "legacyNamespace": "WebAssembly" - } - } - }, - "interfaces": { - "interface": { - "Animation": { - "events": { - "event": [ - { - "name": "finish", - "type": "AnimationPlaybackEvent" - }, - { - "name": "cancel", - "type": "AnimationPlaybackEvent" - } - ] - } - }, - "BeforeUnloadEvent": { - "properties": { - "property": { - "returnValue": { - "name": "returnValue", - "overrideType": "any" - } - } - } - }, - "Blob": { - "methods": { - "method": { - "stream": { + "callbackFunctions": { + "callbackFunction": { + "OnErrorEventHandlerNonNull": { "signature": { - "0": { - "overrideType": "ReadableStream" - } + "0": { + "param": [ + { + "name": "error", + "overrideType": "Error" + } + ] + } } - } - } - } - }, - "ByteLengthQueuingStrategy": { - "extends": "QueuingStrategy", - "properties": { - "property": { - "size": { - "name": "size", - "overrideType": [ - "QueuingStrategySize" - ] - } - } - } - }, - "CSSFontFaceRule": { - "properties": { - "property": { - "style": { - "type": "CSSStyleDeclaration" - } - } - } - }, - "CSSKeyframeRule": { - "properties": { - "property": { - "style": { - "type": "CSSStyleDeclaration" - } - } - } - }, - "CSSNestedDeclarations": { - "properties": { - "property": { - "style": { - "type": "CSSStyleDeclaration" - } - } - } - }, - "CSSPageRule": { - "properties": { - "property": { - "style": { - "type": "CSSStyleDeclaration" - } - } - } - }, - "CSSStyleDeclaration": { - "properties": { - "property": { - "cssFloat": { - "mdnUrl": "https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/cssFloat", - "name": "cssFloat", - "type": "CSSOMString" - }, - "webkitLineClamp": { - "deprecated": false - } - } - } - }, - "CSSStyleRule": { - "properties": { - "property": { - "style": { - "type": "CSSStyleDeclaration" - } - } - } - }, - "Cache": { - "methods": { - "method": { - "match": { - "name": "match", + }, + "QueuingStrategySize": { + "typeParameters": [ + { + "name": "T", + "default": "any" + } + ], "signature": { - "0": { - "overrideType": "Promise" - } + "0": { + "param": [ + { + "name": "chunk", + "overrideType": "T" + } + ] + } } - } - } - } - }, - "CacheStorage": { - "methods": { - "method": { - "match": { - "name": "match", + }, + "UnderlyingSourceStartCallback": { + "typeParameters": [ + { + "name": "R" + } + ], "signature": { - "0": { - "overrideType": "Promise" - } + "0": { + "param": [ + { + "name": "controller", + "overrideType": "ReadableStreamController" + } + ] + } } - } - } - } - }, - "Client": { - "methods": { - "method": { - "postMessage": { + }, + "UnderlyingSourcePullCallback": { + "typeParameters": [ + { + "name": "R" + } + ], "signature": { - "0": { - "param": [ - { - "name": "transfer", - "overrideType": "Transferable[]" - } - ] - } + "0": { + "param": [ + { + "name": "controller", + "overrideType": "ReadableStreamController" + } + ] + } } - } - } - }, - "properties": { - "property": { - "type": { - "name": "type", - "overrideType": "ClientTypes" - } - } - } - }, - "Clients": { - "methods": { - "method": { - "get": { + }, + "UnderlyingSinkWriteCallback": { + "typeParameters": [ + { + "name": "W" + } + ], "signature": { - "0": { - "overrideType": "Promise" - } + "0": { + "param": [ + { + "name": "chunk", + "overrideType": "W" + } + ] + } } - }, - "matchAll": { + }, + "TransformerFlushCallback": { + "typeParameters": [ + { + "name": "O" + } + ], "signature": { - "0": { - "overrideType": "Promise>", - "param": [ - { - "name": "options", - "overrideType": "T" - } - ], - "typeParameters": [ - { - "name": "T", - "extends": "ClientQueryOptions" - } - ] - } + "0": { + "param": [ + { + "name": "controller", + "overrideType": "TransformStreamDefaultController" + } + ] + } } - } - } - } - }, - "CompressionStream": { - "properties": { - "property": { - "readable": { - "name": "readable", - "overrideType": "ReadableStream", - "readonly": true - }, - "writable": { - "name": "writable", - "overrideType": "WritableStream", - "readonly": true - } - } - } - }, - "ContactAddress": { - "name": "PaymentAddress" - }, - "CountQueuingStrategy": { - "extends": "QueuingStrategy", - "properties": { - "property": { - "size": { - "name": "size", - "overrideType": [ - "QueuingStrategySize" - ] - } - } - } - }, - "Crypto": { - "methods": { - "method": { - "getRandomValues": { + }, + "TransformerStartCallback": { + "typeParameters": [ + { + "name": "O" + } + ], "signature": { - "0": { - "overrideType": "T", - "param": [ - { - "name": "array", - "overrideType": "T" - } - ], - "typeParameters": [ - { - "name": "T", - "extends": "ArrayBufferView | null" - } - ] - } + "0": { + "param": [ + { + "name": "controller", + "overrideType": "TransformStreamDefaultController" + } + ] + } } - }, - "randomUUID": { + }, + "TransformerTransformCallback": { + "typeParameters": [ + { + "name": "I" + }, + { + "name": "O" + } + ], "signature": { - "0": { - "overrideType": "`${string}-${string}-${string}-${string}-${string}`" - } + "0": { + "param": [ + { + "name": "chunk", + "overrideType": "I" + }, + { + "name": "controller", + "overrideType": "TransformStreamDefaultController" + } + ] + } } - } - } - } - }, - "CryptoKey": { - "properties": { - "property": { - "algorithm": { - "type": "KeyAlgorithm" - }, - "usages": { - "subtype": { - "type": "KeyUsage" - }, - "type": "sequence" - } - } - } - }, - "CustomEvent": { - "constructor": { - "signature": { - "0": { - "overrideType": "CustomEvent", - "param": [ - { - "name": "eventInitDict", - "overrideType": "CustomEventInit" - } - ], - "typeParameters": [ - { - "name": "T" - } + }, + "CustomElementConstructor": { + "overrideSignatures": [ + "new (...params: any[]): HTMLElement" ] - } - } - }, - "methods": { - "method": { - "initCustomEvent": { + }, + "AudioWorkletProcessorConstructor": { + "overrideSignatures": [ + "new (options: any): AudioWorkletProcessorImpl" + ] + }, + "LockGrantedCallback": { + "typeParameters": [ + { + "name": "T" + } + ], "signature": { - "0": { - "param": [ - { - "name": "detail", + "0": { "overrideType": "T" - } - ] - } + } } - } - } - }, - "properties": { - "property": { - "detail": { - "overrideType": "T" - } } - }, - "typeParameters": [ - { - "name": "T", - "default": "any" - } - ] - }, - "DOMException": { - "extends": "Error" - }, - "DOMImplementation": { - "methods": { - "method": { - "hasFeature": { - "overrideSignatures": [ - "hasFeature(...args: any[]): true" + } + }, + "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" ] - } - } - } - }, - "DOMStringMap": { - "overrideIndexSignatures": [ - "[name: string]: string | undefined" - ] - }, - "DataTransfer": { - "properties": { - "property": { - "dropEffect": { - "name": "dropEffect", - "overrideType": "\"none\" | \"copy\" | \"link\" | \"move\"" - }, - "effectAllowed": { - "name": "effectAllowed", - "overrideType": "\"none\" | \"copy\" | \"copyLink\" | \"copyMove\" | \"link\" | \"linkMove\" | \"move\" | \"all\" | \"uninitialized\"" - } } - } - }, - "DecompressionStream": { - "properties": { - "property": { - "readable": { - "name": "readable", - "overrideType": "ReadableStream", - "readonly": true - }, - "writable": { - "name": "writable", - "overrideType": "WritableStream", - "readonly": true - } - } - } - }, - "DedicatedWorkerGlobalScope": { - "events": { - "event": [ - { - "name": "message", - "type": "MessageEvent" - }, - { - "name": "messageerror", - "type": "MessageEvent" - } - ] - }, - "methods": { - "method": { - "postMessage": { - "signature": { - "0": { - "param": [ - { - "name": "transfer", - "overrideType": "Transferable[]" - } - ] - } + } + }, + "interfaces": { + "interface": { + "CryptoKey": { + "properties": { + "property": { + "algorithm": { + "type": "KeyAlgorithm" + }, + "usages": { + "type": "sequence", + "subtype": { + "type": "KeyUsage" + } + } + } } - } - } - } - }, - "Document": { - "methods": { - "method": { - "adoptNode": { - "signature": { - "0": { - "overrideType": "T", - "param": [ - { - "name": "node", - "overrideType": "T" - } - ], - "typeParameters": [ - { - "name": "T", - "extends": "Node" - } + }, + "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" + } ] - } } - }, - "getElementById": { - "name": "getElementById", - "overrideSignatures": [ - "getElementById(elementId: string): HTMLElement | null" - ] - }, - "getElementsByClassName": { - "name": "getElementsByClassName", - "signature": { - "0": { - "overrideType": "HTMLCollectionOf" - } + }, + "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" + } + } } - }, - "getElementsByName": { - "name": "getElementsByName", - "signature": { - "0": { - "overrideType": "NodeListOf" - } + }, + "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" + } + } + } + } + } } - }, - "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" - ], - "name": "getElementsByTagNameNS", - "signature": { - "0": { - "overrideType": "HTMLCollectionOf" - } + }, + "WebTransportBidirectionalStream": { + "properties": { + "property": { + "readable": { + "type": "ReadableStream" + }, + "writable": { + "type": "WritableStream" + } + } } - }, - "importNode": { - "signature": { - "0": { - "overrideType": "T", - "param": [ - { - "name": "node", - "overrideType": "T" - } - ], - "typeParameters": [ - { - "name": "T", - "extends": "Node" - } - ] - } + }, + "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 + } + } } - } - } - }, - "properties": { - "property": { - "anchors": { - "name": "anchors", - "overrideType": "HTMLCollectionOf" - }, - "body": { - "nullable": false - }, - "defaultView": { - "name": "defaultView", - "overrideType": "WindowProxy & typeof globalThis" - }, - "documentElement": { - "name": "documentElement", - "nullable": false, - "overrideType": "HTMLElement" - }, - "embeds": { - "name": "embeds", - "overrideType": "HTMLCollectionOf" - }, - "forms": { - "name": "forms", - "overrideType": "HTMLCollectionOf" - }, - "head": { - "nullable": false - }, - "images": { - "name": "images", - "overrideType": "HTMLCollectionOf" - }, - "links": { - "name": "links", - "overrideType": "HTMLCollectionOf" - }, - "location": { - "nullable": false, - "readonly": false - }, - "plugins": { - "name": "plugins", - "overrideType": "HTMLCollectionOf" - }, - "scripts": { - "name": "scripts", - "overrideType": "HTMLCollectionOf" - } - } - } - }, - "DocumentFragment": { - "methods": { - "method": { - "getElementById": { - "name": "getElementById", - "overrideSignatures": [ - "getElementById(elementId: string): HTMLElement | null" - ] - } - } - }, - "properties": { - "property": { - "ownerDocument": { - "name": "ownerDocument", - "readonly": 1, - "type": "Document" - } - } - } - }, - "Element": { - "methods": { - "method": { - "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" - ], - "name": "getElementsByTagNameNS", - "signature": { - "0": { - "overrideType": "HTMLCollectionOf" - } + }, + "DocumentFragment": { + "methods": { + "method": { + "getElementById": { + "name": "getElementById", + "overrideSignatures": [ + "getElementById(elementId: string): HTMLElement | null" + ] + } + } + }, + "properties": { + "property": { + "ownerDocument": { + "name": "ownerDocument", + "readonly": 1, + "type": "Document" + } + } } - } - } - } - }, - "EventTarget": { - "methods": { - "method": { - "addEventListener": { - "signature": { - "0": { - "param": [ - { - "name": "callback", - "overrideType": "EventListenerOrEventListenerObject" - } - ] - } + }, + "NavigationActivation": { + // https://github.com/mdn/browser-compat-data/issues/24963 + "exposed": "Window", + "properties": { + "property": { + "entry": { + "exposed": "Window" + }, + "from": { + "exposed": "Window" + }, + "navigationType": { + "exposed": "Window" + } + } } - }, - "removeEventListener": { - "signature": { - "0": { - "param": [ - { - "name": "callback", - "overrideType": "EventListenerOrEventListenerObject" - } - ] - } + }, + "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" + } + } } - } - } - } - }, - "ExtendableEvent": { - "methods": { - "method": { - "waitUntil": { - "signature": { - "0": { - "param": [ - { - "name": "f", - "overrideType": "Promise" - } - ] - } + }, + "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" + } + } } - } - } - } - }, - "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": { - "exposed": "Window Worker" - } - }, - "FontFace": { - "properties": { - "property": { - "display": { - "type": "FontDisplay" - } - } - } - }, - "FormData": { - "methods": { - "method": { - "append": { - "additionalSignatures": [ - "append(name: string, value: string | Blob): void" - ], - "flavor": "Web", - "name": "append" - }, - "set": { - "additionalSignatures": [ - "set(name: string, value: string | Blob): void" - ], - "flavor": "Web", - "name": "set" - } - } - } - }, - "GPUError": { - "exposed": "Window Worker", - "noInterfaceObject": true, - "properties": { - "property": { - "message": { - "exposed": "Window Worker" - } - } - } - }, - "GPUPipelineError": { - "constructor": { - "signature": { - "0": { - "param": [ - { - "name": "message", - "optional": false - } - ] - } - } - } - }, - "Global": { - "constructor": { - "overrideSignatures": [ - "new(descriptor: GlobalDescriptor, v?: ValueTypeMap[T]): Global" - ] - }, - "methods": { - "method": { - "valueOf": { - "overrideSignatures": [ - "valueOf(): ValueTypeMap[T]" - ] - } - } - }, - "name": "Global", - "properties": { - "property": { - "value": { - "overrideType": "ValueTypeMap[T]" - } - } - }, - "typeParameters": [ - { - "name": "T", - "extends": "ValueType", - "default": "ValueType" - } - ] - }, - "HTMLButtonElement": { - "properties": { - "property": { - "labels": { - "name": "labels", - "overrideType": "NodeListOf" - }, - "type": { - "overrideType": "\"submit\" | \"reset\" | \"button\"" - } - } - } - }, - "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" - } - ] - } + }, + "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" + } + } } - }, - "toDataURL": { - "name": "toDataURL", - "signature": { - "0": { - "param": [ - { - "name": "quality", - "overrideType": "number" - } - ] - } + }, + "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" + } + } + } + } } - } - } - } - }, - "HTMLDataListElement": { - "properties": { - "property": { - "options": { - "name": "options", - "overrideType": "HTMLCollectionOf" - } - } - } - }, - "HTMLDirectoryElement": { - "element": [ - { - "name": "dir" - } - ] - }, - "HTMLElement": { - "methods": { - "method": { - "togglePopover": { - "signature": { - "0": { - "param": [ - { - "name": "options", - "type": "boolean" - } - ] - } + }, + "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" + } + ], + } + } + } + } } - } - } - }, - "properties": { - "property": { - "hidden": { - "nullable": false, - "overrideType": "boolean" - } - } - } - }, - "HTMLFontElement": { - "element": [ - { - "name": "font" - } - ] - }, - "HTMLFormElement": { - "overrideIndexSignatures": [ - "[index: number]: Element", - "[name: string]: any" - ], - "properties": { - "property": { - "autocomplete": { - "name": "autocomplete", - "overrideType": "AutoFillBase" - } - } - } - }, - "HTMLFrameElement": { - "element": [ - { - "name": "frame" - } - ] - }, - "HTMLFrameSetElement": { - "element": [ - { - "name": "frameset" - } - ] - }, - "HTMLImageElement": { - "properties": { - "property": { - "fetchPriority": { - "overrideType": "\"high\" | \"low\" | \"auto\"" - } - } - } - }, - "HTMLInputElement": { - "methods": { - "method": { - "setSelectionRange": { - "signature": { - "0": { - "param": [ - { - "name": "start", - "nullable": true - }, - { - "name": "end", - "nullable": true - }, - { - "name": "direction", - "overrideType": "\"forward\" | \"backward\" | \"none\"" - } - ] - } + }, + "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" + ] + } + } } - } - } - }, - "properties": { - "property": { - "autocomplete": { - "name": "autocomplete", - "overrideType": "AutoFill" - }, - "selectionDirection": { - "name": "selectionDirection", - "overrideType": "\"forward\" | \"backward\" | \"none\"" - }, - "valueAsDate": { - "name": "valueAsDate", - "overrideType": "Date" - } - } - } - }, - "HTMLLabelElement": { - "properties": { - "property": { - "form": { - "name": "form", - "overrideType": "HTMLFormElement" - } - } - } - }, - "HTMLLinkElement": { - "properties": { - "property": { - "fetchPriority": { - "overrideType": "\"high\" | \"low\" | \"auto\"" - } - } - } - }, - "HTMLMarqueeElement": { - "element": [ - { - "name": "marquee" - } - ] - }, - "HTMLMediaElement": { - "properties": { - "property": { - "preload": { - "overrideType": "\"none\" | \"metadata\" | \"auto\" | \"\"" - } - } - } - }, - "HTMLMeterElement": { - "properties": { - "property": { - "labels": { - "name": "labels", - "overrideType": "NodeListOf" - } - } - } - }, - "HTMLOptionsCollection": { - "extends": "HTMLCollectionOf" - }, - "HTMLOutputElement": { - "properties": { - "property": { - "labels": { - "name": "labels", - "overrideType": "NodeListOf" - } - } - } - }, - "HTMLProgressElement": { - "properties": { - "property": { - "labels": { - "name": "labels", - "overrideType": "NodeListOf" - } - } - } - }, - "HTMLScriptElement": { - "properties": { - "property": { - "fetchPriority": { - "overrideType": "\"high\" | \"low\" | \"auto\"" - } - } - } - }, - "HTMLSelectElement": { - "overrideIndexSignatures": [ - "[name: number]: HTMLOptionElement | HTMLOptGroupElement" - ], - "properties": { - "property": { - "autocomplete": { - "name": "autocomplete", - "overrideType": "AutoFill" - }, - "labels": { - "name": "labels", - "overrideType": "NodeListOf" - }, - "selectedOptions": { - "name": "selectedOptions", - "overrideType": "HTMLCollectionOf" - }, - "type": { - "name": "type", - "overrideType": "\"select-one\" | \"select-multiple\"" - } - } - } - }, - "HTMLTableElement": { - "properties": { - "property": { - "rows": { - "name": "rows", - "overrideType": "HTMLCollectionOf" - }, - "tBodies": { - "name": "tBodies", - "overrideType": "HTMLCollectionOf" - } - } - } - }, - "HTMLTableRowElement": { - "properties": { - "property": { - "cells": { - "name": "cells", - "overrideType": "HTMLCollectionOf" - } - } - } - }, - "HTMLTableSectionElement": { - "properties": { - "property": { - "rows": { - "name": "rows", - "overrideType": "HTMLCollectionOf" - } - } - } - }, - "HTMLTextAreaElement": { - "methods": { - "method": { - "setSelectionRange": { - "signature": { - "0": { - "param": [ - { - "name": "start", - "nullable": true - }, - { - "name": "end", - "nullable": true - }, - { - "name": "direction", - "overrideType": "\"forward\" | \"backward\" | \"none\"" - } - ] - } + }, + "BeforeUnloadEvent": { + "properties": { + "property": { + "returnValue": { + "name": "returnValue", + "overrideType": "any" + } + } } - } - } - }, - "properties": { - "property": { - "autocomplete": { - "name": "autocomplete", - "overrideType": "AutoFill" - }, - "labels": { - "name": "labels", - "overrideType": "NodeListOf" - }, - "selectionDirection": { - "name": "selectionDirection", - "overrideType": "\"forward\" | \"backward\" | \"none\"" - } - } - } - }, - "IDBCursor": { - "methods": { - "method": { - "continue": { - "signature": { - "0": { - "param": [ - { - "name": "key", - "overrideType": "IDBValidKey" - } - ] - } + }, + "SVGElement": { + "properties": { + "property": { + "className": { + "deprecated": true, + "name": "className", + "type": "any" + } + } } - }, - "continuePrimaryKey": { - "signature": { - "0": { - "param": [ - { - "name": "key", - "overrideType": "IDBValidKey" - }, - { - "name": "primaryKey", - "overrideType": "IDBValidKey" - } - ] - } + }, + "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" + ] + } + } } - }, - "delete": { - "signature": { - "0": { - "overrideType": "IDBRequest" - } + }, + "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" + } + } } - }, - "update": { - "signature": { - "0": { - "overrideType": "IDBRequest" + }, + "HTMLDirectoryElement": { + "element": [ + { + "name": "dir" + } + ] + }, + "HTMLFontElement": { + "element": [ + { + "name": "font" + } + ] + }, + "HTMLFrameElement": { + "element": [ + { + "name": "frame" + } + ] + }, + "FontFace": { + "properties": { + "property": { + "display": { + "type": "FontDisplay" } } } - } - }, - "properties": { - "property": { - "key": { - "name": "key", - "type": "IDBValidKey" - }, - "primaryKey": { - "name": "primaryKey", - "type": "IDBValidKey" - } - } - } - }, - "IDBIndex": { - "methods": { - "method": { - "count": { - "name": "count", - "signature": { - "0": { - "overrideType": "IDBRequest", - "param": [ - { - "name": "query", - "overrideType": "IDBValidKey | IDBKeyRange" - } - ] - } + }, + "HTMLFrameSetElement": { + "element": [ + { + "name": "frameset" + } + ] + }, + "HTMLTableElement": { + "properties": { + "property": { + "rows": { + "name": "rows", + "overrideType": "HTMLCollectionOf" + }, + "tBodies": { + "name": "tBodies", + "overrideType": "HTMLCollectionOf" + } + } } - }, - "get": { - "name": "get", - "signature": { - "0": { - "overrideType": "IDBRequest", - "param": [ - { - "name": "query", - "overrideType": "IDBValidKey | IDBKeyRange" - } - ] - } + }, + "HTMLTableSectionElement": { + "properties": { + "property": { + "rows": { + "name": "rows", + "overrideType": "HTMLCollectionOf" + } + } } - }, - "getAll": { - "name": "getAll", - "signature": { - "0": { - "overrideType": "IDBRequest", - "param": [ - { - "name": "query", - "overrideType": "IDBValidKey | IDBKeyRange | null" - } - ] - } + }, + "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" + } + } + } + } } - }, - "getAllKeys": { - "name": "getAllKeys", - "signature": { - "0": { - "overrideType": "IDBRequest", - "param": [ - { - "name": "query", - "overrideType": "IDBValidKey | IDBKeyRange | null" - } - ] - } + }, + "DataTransfer": { + "properties": { + "property": { + "dropEffect": { + "name": "dropEffect", + "overrideType": "\"none\" | \"copy\" | \"link\" | \"move\"" + }, + "effectAllowed": { + "name": "effectAllowed", + "overrideType": "\"none\" | \"copy\" | \"copyLink\" | \"copyMove\" | \"link\" | \"linkMove\" | \"move\" | \"all\" | \"uninitialized\"" + } + } } - }, - "getKey": { - "name": "getKey", - "signature": { - "0": { - "overrideType": "IDBRequest", - "param": [ - { - "name": "query", - "overrideType": "IDBValidKey | IDBKeyRange" - } - ] - } + }, + "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" + } + } + } + } } - }, - "openCursor": { - "name": "openCursor", - "signature": { - "0": { - "overrideType": "IDBRequest", - "param": [ - { - "name": "query", - "overrideType": "IDBValidKey | IDBKeyRange | null" - } - ] - } + }, + "IDBRequest": { + "properties": { + "property": { + "source": { + "name": "source", + "nullable": false + }, + "result": { + "name": "result", + "overrideType": "T" + } + } + }, + "typeParameters": [ + { + "name": "T", + "default": "any" + } + ] + }, + "ImageBitmapRenderingContext": { + "properties": { + "property": { + "canvas": { + "exposed": "Window" + } + } } - }, - "openKeyCursor": { - "name": "openKeyCursor", - "signature": { - "0": { - "overrideType": "IDBRequest", - "param": [ - { - "name": "query", - "overrideType": "IDBValidKey | IDBKeyRange | null" - } - ] - } + }, + "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" + } + } + } + } } - } - } - }, - "properties": { - "property": { - "keyPath": { - "name": "keyPath", - "overrideType": "string | string[]" - } - } - } - }, - "IDBObjectStore": { - "methods": { - "method": { - "add": { - "name": "add", - "signature": { - "0": { - "overrideType": "IDBRequest", - "param": [ - { - "name": "key", - "overrideType": "IDBValidKey" - } - ] - } + }, + "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\"" + } + ] + } + } + } + } } - }, - "clear": { - "name": "clear", - "signature": { - "0": { - "overrideType": "IDBRequest" - } + }, + "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" + ] + } + } } - }, - "count": { - "name": "count", - "signature": { - "0": { - "overrideType": "IDBRequest", - "param": [ - { - "name": "query", - "overrideType": "IDBValidKey | IDBKeyRange" - } - ] - } + }, + "DOMException": { + "extends": "Error" + }, + "DOMStringMap": { + "overrideIndexSignatures": [ + "[name: string]: string | undefined" + ] + }, + "DOMImplementation": { + "methods": { + "method": { + "hasFeature": { + "overrideSignatures": [ + "hasFeature(...args: any[]): true" + ] + } + } } - }, - "delete": { - "name": "delete", - "signature": { - "0": { - "overrideType": "IDBRequest", - "param": [ - { - "name": "query", - "overrideType": "IDBValidKey | IDBKeyRange" - } - ] - } + }, + "HTMLButtonElement": { + "properties": { + "property": { + "labels": { + "name": "labels", + "overrideType": "NodeListOf" + }, + "type": { + "overrideType": "\"submit\" | \"reset\" | \"button\"" + } + } } - }, - "get": { - "name": "get", - "signature": { - "0": { - "overrideType": "IDBRequest", - "param": [ - { - "name": "query", - "overrideType": "IDBValidKey | IDBKeyRange" - } - ] - } + }, + "HTMLLabelElement": { + "properties": { + "property": { + "form": { + "name": "form", + "overrideType": "HTMLFormElement" + } + } } - }, - "getAll": { - "name": "getAll", - "signature": { - "0": { - "overrideType": "IDBRequest", - "param": [ - { - "name": "query", - "overrideType": "IDBValidKey | IDBKeyRange | null" - } - ] - } + }, + "HTMLMeterElement": { + "properties": { + "property": { + "labels": { + "name": "labels", + "overrideType": "NodeListOf" + } + } } - }, - "getAllKeys": { - "name": "getAllKeys", - "signature": { - "0": { - "overrideType": "IDBRequest", - "param": [ - { - "name": "query", - "overrideType": "IDBValidKey | IDBKeyRange | null" - } - ] - } + }, + "HTMLOutputElement": { + "properties": { + "property": { + "labels": { + "name": "labels", + "overrideType": "NodeListOf" + } + } } - }, - "getKey": { - "name": "getKey", - "signature": { - "0": { - "overrideType": "IDBRequest", - "param": [ - { - "name": "query", - "overrideType": "IDBValidKey | IDBKeyRange" - } - ] - } + }, + "HTMLProgressElement": { + "properties": { + "property": { + "labels": { + "name": "labels", + "overrideType": "NodeListOf" + } + } } - }, - "openCursor": { - "name": "openCursor", - "signature": { - "0": { - "overrideType": "IDBRequest", - "param": [ - { - "name": "query", - "overrideType": "IDBValidKey | IDBKeyRange | null" - } - ] - } + }, + "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\"" + } + ] + } + } + } + } } - }, - "openKeyCursor": { - "name": "openKeyCursor", - "signature": { - "0": { - "overrideType": "IDBRequest", - "param": [ - { - "name": "query", - "overrideType": "IDBValidKey | IDBKeyRange | null" - } + }, + "ServiceWorkerContainer": { + "methods": { + "method": { + "getRegistration": { + "signature": { + "0": { + "overrideType": "Promise" + } + } + } + } + }, + "events": { + "event": [ + { + "name": "message", + "type": "MessageEvent" + }, + { + "name": "messageerror", + "type": "MessageEvent" + } ] - } } - }, - "put": { - "name": "put", - "signature": { - "0": { - "overrideType": "IDBRequest", - "param": [ - { - "name": "key", - "overrideType": "IDBValidKey" - } + }, + "WebSocket": { + "methods": { + "method": { + "send": { + "name": "send", + "overrideSignatures": [ + "send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void" + ] + } + } + }, + "events": { + "event": [ + { + "name": "message", + "type": "MessageEvent" + } ] - } } - } - } - }, - "properties": { - "property": { - "keyPath": { - "name": "keyPath", - "overrideType": "string | string[] | null" - } - } - } - }, - "IDBRequest": { - "properties": { - "property": { - "result": { - "name": "result", - "overrideType": "T" - }, - "source": { - "name": "source", - "nullable": false - } - } - }, - "typeParameters": [ - { - "name": "T", - "default": "any" - } - ] - }, - "ImageBitmapRenderingContext": { - "properties": { - "property": { - "canvas": { - "exposed": "Window" - } - } - } - }, - "InstallEvent": { - "exposed": "" - }, - "Instance": { - "constructor": { - "signature": { - "0": { - "param": [ - { - "name": "importObject", - "type": "Imports" - } - ] - } - } - }, - "properties": { - "property": { - "exports": { - "type": "Exports" - } - } - } - }, - "KeyframeEffect": { - "constructor": { - "signature": { - "0": { - "param": [ - { - "name": "keyframes", - "overrideType": "Keyframe[] | PropertyIndexedKeyframes" - } - ] - } - } - }, - "methods": { - "method": { - "getKeyframes": { - "signature": { - "0": { - "overrideType": "ComputedKeyframe[]" - } + }, + "WebTransportDatagramDuplexStream": { + "properties": { + "property": { + // WebTransportDatagramsWritable is not implemented by anyone as of 2025-03 + "writable": { + "type": "WritableStream" + } + } } - }, - "setKeyframes": { - "signature": { - "0": { - "param": [ - { - "name": "keyframes", - "overrideType": "Keyframe[] | PropertyIndexedKeyframes" - } - ] - } + }, + "HTMLTableRowElement": { + "properties": { + "property": { + "cells": { + "name": "cells", + "overrideType": "HTMLCollectionOf" + } + } } - } - } - } - }, - "LockManager": { - "methods": { - "method": { - "request": { - "signature": { - "0": { - "overrideType": "Promise", - "param": [ - { - "name": "callback", - "overrideType": "LockGrantedCallback" - } - ], - "typeParameters": [ - { - "name": "T" - } - ] - }, - "1": { - "overrideType": "Promise", - "param": [ - { - "name": "callback", - "overrideType": "LockGrantedCallback" - } - ], - "typeParameters": [ - { - "name": "T" - } + }, + "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" + } ] - } }, - "typeParameters": { - "name": "T" + "properties": { + "property": { + "readyState": { + "name": "readyState", + "overrideType": "typeof FileReader.EMPTY | typeof FileReader.LOADING | typeof FileReader.DONE" + } + } } - } - } - } - }, - "MIDIAccess": { - "exposed": "Window", - "transferable": false - }, - "MIDIConnectionEvent": { - "exposed": "Window" - }, - "MIDIInput": { - "events": { - "event": [ - { - "name": "midimessage", - "type": "MIDIMessageEvent" - } - ] - }, - "exposed": "Window" - }, - "MIDIInputMap": { - "exposed": "Window" - }, - "MIDIMessageEvent": { - "exposed": "Window" - }, - "MIDIOutput": { - "exposed": "Window" - }, - "MIDIOutputMap": { - "exposed": "Window" - }, - "MIDIPort": { - "events": { - "event": [ - { - "name": "statechange", - "type": "MIDIConnectionEvent" - } - ] - }, - "exposed": "Window" - }, - "MediaKeySession": { - "events": { - "event": [ - { - "name": "message", - "type": "MediaKeyMessageEvent" - } - ] - } - }, - "MediaMetadata": { - "properties": { - "property": { - "artwork": { - "subtype": { - "type": "MediaImage" + }, + "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" } - } - } - } - }, - "MediaQueryList": { - "events": { - "event": [ - { - "name": "change", - "type": "MediaQueryListEvent" - } - ] - }, - "methods": { - "method": { - "addListener": { - "deprecated": true, - "signature": { - "0": { - "param": [ - { - "name": "callback", - "overrideType": "(this: MediaQueryList, ev: MediaQueryListEvent) => any" - } - ] - } + }, + "MutationRecord": { + "properties": { + "property": { + "type": { + "name": "type", + "overrideType": "MutationRecordType" + } + } } - }, - "removeListener": { - "deprecated": true, - "signature": { - "0": { - "param": [ - { - "name": "callback", - "overrideType": "(this: MediaQueryList, ev: MediaQueryListEvent) => any" - } - ] - } + }, + "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"] + } + ] + } + } + } + } } - } - } - } - }, - "MediaSource": { - "exposed": "Window" - }, - "MessageEvent": { - "constructor": { - "signature": { - "0": { - "overrideType": "MessageEvent", - "param": [ - { - "name": "eventInitDict", - "overrideType": "MessageEventInit" - } - ], - "typeParameters": [ - { - "name": "T" - } - ] - } - } - }, - "properties": { - "property": { - "data": { - "overrideType": "T" - } - } - }, - "typeParameters": [ - { - "name": "T", - "default": "any" - } - ] - }, - "MessagePort": { - "events": { - "event": [ - { - "name": "message", - "type": "MessageEvent" - }, - { - "name": "messageerror", - "type": "MessageEvent" - } - ] - }, - "methods": { - "method": { - "postMessage": { - "signature": { - "0": { - "param": [ - { - "name": "transfer", - "overrideType": "Transferable[]" - } - ] - } + }, + "Client": { + "properties": { + "property": { + "type": { + "name": "type", + "overrideType": "ClientTypes" + } + } + }, + "methods": { + "method": { + "postMessage": { + "signature": { + "0": { + "param": [ + { + "name": "transfer", + "overrideType": "Transferable[]" + } + ] + } + } + } + } } - } - } - } - }, - "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" - ] - } - } - } - }, - "MutationRecord": { - "properties": { - "property": { - "type": { - "name": "type", - "overrideType": "MutationRecordType" - } - } - } - }, - "NavigationActivation": { - "exposed": "Window", - "properties": { - "property": { - "entry": { - "exposed": "Window" - }, - "from": { - "exposed": "Window" - }, - "navigationType": { - "exposed": "Window" - } - } - } - }, - "NavigationHistoryEntry": { - "exposed": "Window", - "methods": { - "method": { - "getState": { - "exposed": "Window" - } - } - }, - "properties": { - "property": { - "id": { - "exposed": "Window" - }, - "index": { - "exposed": "Window" - }, - "key": { - "exposed": "Window" - }, - "ondispose": { - "exposed": "Window" - }, - "sameDocument": { - "exposed": "Window" - }, - "url": { - "exposed": "Window" - } - } - } - }, - "Node": { - "methods": { - "method": { - "appendChild": { - "signature": { - "0": { - "overrideType": "T", - "param": [ - { - "name": "node", - "overrideType": "T" - } - ], - "typeParameters": [ - { - "name": "T", - "extends": "Node" - } + }, + "RTCDataChannel": { + "events": { + "event": [ + { + "name": "message", + "type": "MessageEvent" + } ] - } } - }, - "insertBefore": { - "signature": { - "0": { - "overrideType": "T", - "param": [ - { - "name": "node", - "overrideType": "T" - } - ], - "typeParameters": [ - { - "name": "T", - "extends": "Node" - } - ] - } + }, + "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 + } + } } - }, - "removeChild": { - "signature": { - "0": { - "overrideType": "T", - "param": [ - { - "name": "child", - "overrideType": "T" - } - ], - "typeParameters": [ - { - "name": "T", - "extends": "Node" - } + }, + "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 + } + } + } + } } - }, - "replaceChild": { - "signature": { - "0": { - "overrideType": "T", - "param": [ - { - "name": "child", - "overrideType": "T" - } + }, + "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" + } ], - "typeParameters": [ - { - "name": "T", - "extends": "Node" - } + "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" + } ] - } } - } - } - }, - "properties": { - "property": { - "childNodes": { - "overrideType": "NodeListOf" - }, - "firstChild": { - "overrideType": "ChildNode" - }, - "lastChild": { - "overrideType": "ChildNode" - }, - "nextSibling": { - "overrideType": "ChildNode" - }, - "parentElement": { - "overrideType": "HTMLElement" - }, - "parentNode": { - "overrideType": "ParentNode" - }, - "previousSibling": { - "overrideType": "ChildNode" - } - } - } - }, - "OfflineAudioContext": { - "events": { - "event": [ - { - "name": "complete", - "type": "OfflineAudioCompletionEvent" - } - ] - } - }, - "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" + }, + "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" + } ] - } - } - } - }, - "PannerNode": { - "methods": { - "method": { - "setOrientation": { - "deprecated": true, - "name": "setOrientation" - }, - "setPosition": { - "deprecated": true, - "name": "setPosition" - } - } - } - }, - "PaymentRequest": { - "properties": { - "property": { - "shippingAddress": { - "type": "PaymentAddress" - } - } - } - }, - "PaymentResponse": { - "properties": { - "property": { - "shippingAddress": { - "type": "PaymentAddress" - } - } - } - }, - "Permissions": { - "methods": { - "method": { - "query": { - "signature": { - "0": { - "param": [ - { - "name": "permissionDesc", - "type": "PermissionDescriptor" - } + }, + "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" + } ] - } } - } - } - } - }, - "PromiseRejectionEvent": { - "properties": { - "property": { - "promise": { - "overrideType": "Promise" - } - } - } - }, - "RTCDataChannel": { - "events": { - "event": [ - { - "name": "message", - "type": "MessageEvent" - } - ] - } - }, - "RTCIceCandidatePair": { - "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 - } + }, + "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" + } ] - }, - "1": { - "deprecated": true, - "param": [ - { - "name": "candidate", - "nullable": true - } + } + }, + "MessagePort": { + "methods": { + "method": { + "postMessage": { + "signature": { + "0": { + "param": [ + { + "name": "transfer", + "overrideType": "Transferable[]" + } + ] + } + } + } + } + }, + "events": { + "event": [ + { + "name": "message", + "type": "MessageEvent" + }, + { + "name": "messageerror", + "type": "MessageEvent" + } ] - } } - }, - "createAnswer": { - "signature": { - "1": { - "deprecated": true - } + }, + "ServiceWorker": { + "methods": { + "method": { + "postMessage": { + "signature": { + "0": { + "param": [ + { + "name": "transfer", + "overrideType": "Transferable[]" + } + ] + } + } + } + } } - }, - "createOffer": { - "signature": { - "1": { - "deprecated": true - } + }, + "DedicatedWorkerGlobalScope": { + "methods": { + "method": { + "postMessage": { + "signature": { + "0": { + "param": [ + { + "name": "transfer", + "overrideType": "Transferable[]" + } + ] + } + } + } + } + }, + "events": { + "event": [ + { + "name": "message", + "type": "MessageEvent" + }, + { + "name": "messageerror", + "type": "MessageEvent" + } + ] } - }, - "setLocalDescription": { - "signature": { - "1": { - "deprecated": true - } + }, + "HTMLFormElement": { + "overrideIndexSignatures": [ + "[index: number]: Element", + "[name: string]: any" + ], + "properties": { + "property": { + "autocomplete": { + "name": "autocomplete", + "overrideType": "AutoFillBase" + } + } } - }, - "setRemoteDescription": { - "signature": { - "1": { - "deprecated": true + }, + "Blob": { + "methods": { + "method": { + "stream": { + "signature": { + "0": { + "overrideType": "ReadableStream" + } + } } } } - } - } - }, - "ReadableStream": { - "constructor": { - "force-references": [ - { - "type": "UnderlyingSource" - }, - { - "type": "UnderlyingByteSource" - }, - { - "type": "UnderlyingDefaultSource" - }, - { - "type": "QueuingStrategy" - } - ], - "signature": { - "0": { - "overrideType": "ReadableStream", - "param": [ - { - "name": "underlyingSource", - "optional": false, - "type": "UnderlyingByteSource" - }, - { - "name": "strategy", - "overrideType": "{ highWaterMark?: number }" - } - ] - }, - "1": { - "overrideType": "ReadableStream", - "param": [ - { - "name": "underlyingSource", - "optional": false, - "overrideType": "UnderlyingDefaultSource" - }, - { - "name": "strategy", - "optional": true, - "overrideType": "QueuingStrategy" - } + }, + "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" - } - ] - }, - "2": { - "overrideType": "ReadableStream", - "param": [ - { - "name": "underlyingSource", - "optional": true, - "overrideType": "UnderlyingSource" - }, - { - "name": "strategy", - "optional": true, - "overrideType": "QueuingStrategy" - } + { + "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" - } - ] - } - } - }, - "iterator": { - "type": { - "0": { - "overrideType": "R" - } - } - }, - "methods": { - "method": { - "getReader": { - "additionalSignatures": [ - "getReader(options: { mode: \"byob\" }): ReadableStreamBYOBReader", - "getReader(): ReadableStreamDefaultReader" + { + "name": "R", + "default": "any" + } ], - "signature": { - "0": { - "overrideType": "ReadableStreamReader" - } + "methods": { + "method": { + "enqueue": { + "signature": { + "0": { + "param": [ + { + "name": "chunk", + "overrideType": "R" + } + ] + } + } + } + } } - }, - "pipeThrough": { - "signature": { - "0": { - "overrideType": "ReadableStream", - "param": [ - { - "name": "transform", - "overrideType": "ReadableWritablePair" - } - ], - "typeParameters": [ - { - "name": "T" - } + }, + "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" + } + } + } + } } - }, - "pipeTo": { - "signature": { - "0": { - "param": [ - { - "name": "destination", - "overrideType": "WritableStream" - } + }, + "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" + } ] - } } - }, - "tee": { - "signature": { - "0": { - "overrideType": "[ReadableStream, ReadableStream]" - } + }, + "TransformStreamDefaultController": { + "typeParameters": [ + { + "name": "O", + "default": "any" + } + ], + "methods": { + "method": { + "enqueue": { + "signature": { + "0": { + "param": [ + { + "name": "chunk", + "overrideType": "O" + } + ] + } + } + } + } } - } - } - }, - "typeParameters": [ - { - "name": "R", - "default": "any" - } - ] - }, - "ReadableStreamBYOBReader": { - "constructor": { - "signature": { - "0": { - "param": [ - { - "name": "stream", - "overrideType": "ReadableStream" - } - ] - } - } - }, - "methods": { - "method": { - "read": { - "signature": { - "0": { - "overrideType": "Promise>", - "param": [ - { - "name": "view", - "overrideType": "T" - } - ], - "typeParameters": [ - { - "name": "T", - "extends": "ArrayBufferView" - } + }, + "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" + } ] - } } - } - } - } - }, - "ReadableStreamDefaultController": { - "methods": { - "method": { - "enqueue": { - "signature": { - "0": { - "param": [ - { - "name": "chunk", - "overrideType": "R" - } + }, + "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" + } ] - } } - } - } - }, - "typeParameters": [ - { - "name": "R", - "default": "any" - } - ] - }, - "ReadableStreamDefaultReader": { - "constructor": { - "signature": { - "0": { - "overrideType": "ReadableStreamDefaultReader", - "param": [ - { - "name": "stream", - "overrideType": "ReadableStream" - } - ], + }, + "MessageEvent": { + "properties": { + "property": { + "data": { + "overrideType": "T" + } + } + }, "typeParameters": [ - { - "name": "R", - "default": "any" - } - ] - } - } - }, - "methods": { - "method": { - "read": { - "signature": { - "0": { - "overrideType": "Promise>" - } - } - } - } - }, - "typeParameters": [ - { - "name": "R", - "default": "any" - } - ] - }, - "SVGElement": { - "properties": { - "property": { - "className": { - "deprecated": true, - "name": "className", - "type": "any" - } - } - } - }, - "SVGSVGElement": { - "methods": { - "method": { - "getEnclosureList": { - "signature": { - "0": { - "overrideType": "NodeListOf" - } + { + "name": "T", + "default": "any" + } + ], + "constructor": { + "signature": { + "0": { + "typeParameters": [ + { + "name": "T" + } + ], + "param": [ + { + "name": "eventInitDict", + "overrideType": "MessageEventInit" + } + ], + "overrideType": "MessageEvent" + } + } } - }, - "getIntersectionList": { - "signature": { - "0": { - "overrideType": "NodeListOf" - } + }, + "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" + } + ] } - } - } - } - }, - "SVGSymbolElement": { - "extends": "SVGElement" - }, - "ScriptProcessorNode": { - "events": { - "event": [ - { - "name": "audioprocess", - "type": "AudioProcessingEvent" - } - ] - } - }, - "ServiceWorker": { - "methods": { - "method": { - "postMessage": { - "signature": { - "0": { - "param": [ - { - "name": "transfer", - "overrideType": "Transferable[]" - } + }, + "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" + } ] - } } - } - } - } - }, - "ServiceWorkerContainer": { - "events": { - "event": [ - { - "name": "message", - "type": "MessageEvent" - }, - { - "name": "messageerror", - "type": "MessageEvent" - } - ] - }, - "methods": { - "method": { - "getRegistration": { - "signature": { - "0": { - "overrideType": "Promise" - } + }, + "Clients": { + "methods": { + "method": { + "get": { + "signature": { + "0": { + "overrideType": "Promise" + } + } + }, + "matchAll": { + "signature": { + "0": { + "typeParameters": [ + { + "name": "T", + "extends": "ClientQueryOptions" + } + ], + "param": [ + { + "name": "options", + "overrideType": "T" + } + ], + "overrideType": "Promise>" + } + } + } + } } - } - } - } - }, - "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" + }, + "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" } - ] } - } } - } - } - } - }, - "SourceBuffer": { - "exposed": "Window" - }, - "SourceBufferList": { - "exposed": "Window" - }, - "Storage": { - "overrideIndexSignatures": [ - "[name: string]: any" - ] - }, - "StylePropertyMapReadOnly": { - "methods": { - "method": { - "get": { - "signature": { - "0": { - "overrideType": "undefined | CSSStyleValue" - } + }, + "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" + } + } } - } - } - } - }, - "SubtleCrypto": { - "methods": { - "method": { - "decrypt": { - "signature": { - "0": { - "param": [ - { - "name": "algorithm", - "additionalTypes": [ - "RsaOaepParams", - "AesCtrParams", - "AesCbcParams", - "AesGcmParams" - ] - } - ] - } + }, + "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" + } + } } - }, - "deriveBits": { - "signature": { - "0": { - "param": [ - { - "name": "algorithm", - "additionalTypes": [ - "EcdhKeyDeriveParams", - "HkdfParams", - "Pbkdf2Params" - ] - } - ] - } + }, + "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" + } + } } - }, - "deriveKey": { - "signature": { - "0": { - "overrideType": "Promise", - "param": [ - { - "name": "algorithm", - "additionalTypes": [ - "EcdhKeyDeriveParams", - "HkdfParams", - "Pbkdf2Params" - ] - }, - { - "name": "derivedKeyType", - "additionalTypes": [ - "AesDerivedKeyParams", - "HmacImportParams", - "HkdfParams", - "Pbkdf2Params" - ] - } - ] - } + }, + "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 + } + } } - }, - "digest": { - "name": "digest", - "signature": { - "0": { - "overrideType": "Promise" - } + }, + "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" + } + } } - }, - "encrypt": { - "signature": { - "0": { - "param": [ - { - "name": "algorithm", - "additionalTypes": [ - "RsaOaepParams", - "AesCtrParams", - "AesCbcParams", - "AesGcmParams" - ] - } - ] - } + }, + "ContactAddress": { + "name": "PaymentAddress" + }, + "HTMLMediaElement": { + "properties": { + "property": { + "preload": { + "overrideType": "\"none\" | \"metadata\" | \"auto\" | \"\"" + } + } } - }, - "exportKey": { - "additionalSignatures": [ - "exportKey(format: \"jwk\", key: CryptoKey): Promise", - "exportKey(format: Exclude, key: CryptoKey): Promise" + }, + "Global": { + "name": "Global", + "typeParameters": [ + { + "name": "T", + "extends": "ValueType", + "default": "ValueType" + } ], - "signature": { - "0": { - "overrideType": "Promise", - "param": [ - { - "name": "format", - "overrideType": "KeyFormat" - } + "constructor": { + "overrideSignatures": [ + "new(descriptor: GlobalDescriptor, v?: ValueTypeMap[T]): Global" ] - } + }, + "properties": { + "property": { + "value": { + "overrideType": "ValueTypeMap[T]" + } + } + }, + "methods": { + "method": { + "valueOf": { + "overrideSignatures": [ + "valueOf(): ValueTypeMap[T]" + ] + } + } } - }, - "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" - ], - "name": "generateKey", - "signature": { - "0": { - "overrideType": "Promise" - } + }, + + // 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" + } + } } - }, - "importKey": { - "additionalSignatures": [ - "importKey(format: \"jwk\", keyData: JsonWebKey, algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, extractable: boolean, keyUsages: ReadonlyArray): Promise" - ], - "force-references": [ - { - "type": "JsonWebKey" - } - ], - "name": "importKey", - "signature": { - "0": { - "param": [ - { - "name": "format", - "overrideType": "Exclude" - }, - { - "name": "keyData", - "type": "BufferSource" - }, - { - "name": "algorithm", - "additionalTypes": [ - "RsaHashedImportParams", - "EcKeyImportParams", - "HmacImportParams", - "AesKeyAlgorithm" - ] - } - ] - } + }, + "PaymentResponse": { + "properties": { + "property": { + "shippingAddress": { + "type": "PaymentAddress" + } + } } - }, - "sign": { - "signature": { - "0": { - "overrideType": "Promise", - "param": [ - { - "name": "algorithm", - "additionalTypes": [ - "RsaPssParams", - "EcdsaParams" - ] - } - ] - } + }, + + "SourceBuffer": { + "exposed": "Window" + }, + "SourceBufferList": { + "exposed": "Window" + }, + "StylePropertyMapReadOnly": { + "methods": { + "method": { + "get": { + // https://github.com/w3c/css-houdini-drafts/pull/1087 + "signature": { + "0": { + "overrideType": "undefined | CSSStyleValue" + } + } + } + } } - }, - "unwrapKey": { - "signature": { - "0": { - "param": [ - { - "name": "unwrapAlgorithm", - "additionalTypes": [ - "RsaOaepParams", - "AesCtrParams", - "AesCbcParams", - "AesGcmParams" - ] - }, - { - "name": "unwrappedKeyAlgorithm", - "additionalTypes": [ - "RsaHashedImportParams", - "EcKeyImportParams", - "HmacImportParams", - "AesKeyAlgorithm" - ] - } - ] - } + }, + "HTMLImageElement": { + "properties": { + "property": { + "fetchPriority": { + "overrideType": "\"high\" | \"low\" | \"auto\"" + } + } } - }, - "verify": { - "signature": { - "0": { - "overrideType": "Promise", - "param": [ - { - "name": "algorithm", - "additionalTypes": [ - "RsaPssParams", - "EcdsaParams" - ] - } - ] - } + }, + "HTMLLinkElement": { + "properties": { + "property": { + "fetchPriority": { + "overrideType": "\"high\" | \"low\" | \"auto\"" + } + } } - }, - "wrapKey": { - "signature": { - "0": { - "overrideType": "Promise", - "param": [ - { - "name": "wrapAlgorithm", - "additionalTypes": [ - "RsaOaepParams", - "AesCtrParams", - "AesCbcParams", - "AesGcmParams" - ] - } - ] - } + }, + "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" + } + } + } + } } - } - } - } - }, - "TextDecoderStream": { - "properties": { - "property": { - "readable": { - "name": "readable", - "overrideType": "ReadableStream", - "readonly": true - }, - "writable": { - "name": "writable", - "overrideType": "WritableStream", - "readonly": true - } - } - } - }, - "TextEncoderStream": { - "properties": { - "property": { - "readable": { - "name": "readable", - "overrideType": "ReadableStream", - "readonly": true - }, - "writable": { - "name": "writable", - "overrideType": "WritableStream", - "readonly": true - } } - } - }, - "TransformStream": { - "constructor": { - "force-references": [ - { - "type": "Transformer" - }, - { - "type": "QueuingStrategy" - } - ], - "signature": { - "0": { - "overrideType": "TransformStream", - "param": [ - { - "name": "transformer", - "overrideType": "Transformer" - }, - { - "name": "writableStrategy", - "overrideType": "QueuingStrategy" - }, - { - "name": "readableStrategy", - "overrideType": "QueuingStrategy" + } + }, + "dictionaries": { + "dictionary": { + "FontFaceDescriptors": { + "members": { + "member": { + "display":{ + "type": "FontDisplay" } - ], + } + } + }, + // 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": "I", - "default": "any" - }, - { - "name": "O", - "default": "any" - } + { + "name": "T", + "default": "any" + } ] - } - } - }, - "properties": { - "property": { - "readable": { - "overrideType": "ReadableStream" - }, - "writable": { - "overrideType": "WritableStream" - } - } - }, - "typeParameters": [ - { - "name": "I", - "default": "any" }, - { - "name": "O", - "default": "any" - } - ] - }, - "TransformStreamDefaultController": { - "methods": { - "method": { - "enqueue": { - "signature": { - "0": { - "param": [ - { - "name": "chunk", - "overrideType": "O" - } - ] - } + "CustomEventInit": { + "members": { + "member": { + "detail": { + "name": "detail", + "overrideType": "T" + } + } + }, + "typeParameters": [ + { + "name": "T", + "default": "any" + } + ] + }, + "ClientQueryOptions": { + "members": { + "member": { + "type": { + "name": "type", + "overrideType": "ClientTypes" + } + } } - } - } - }, - "typeParameters": [ - { - "name": "O", - "default": "any" - } - ] - }, - "URL": { - "constructor": { - "signature": { - "0": { - "param": [ - { - "name": "base", - "additionalTypes": [ - "URL" - ] - } + }, + "AuthenticatorSelectionCriteria": { + "members": { + "member": { + "authenticatorAttachment": { + "type": "AuthenticatorAttachment" + }, + "residentKey": { + "type": "ResidentKeyRequirement" + }, + "userVerification": { + "type": "UserVerificationRequirement" + } + } + } + }, + "BaseKeyframe": { + "name": "Keyframe", + "overrideIndexSignatures": [ + "[property: string]: string | number | null | undefined" ] - } - } - }, - "methods": { - "method": { - "canParse": { - "signature": { - "0": { - "param": [ - { - "name": "base", - "additionalTypes": [ - "URL" - ] - } - ] - } + }, + "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" + } + } } - }, - "parse": { - "signature": { - "0": { - "param": [ - { - "name": "base", - "additionalTypes": [ - "URL" - ] - } - ] - } + }, + "PromiseRejectionEventInit": { + "members": { + "member": { + "promise": { + "overrideType": "Promise" + } + } + } + }, + "PublicKeyCredentialCreationOptions": { + "members": { + "member": { + "attestation": { + "type": "AttestationConveyancePreference" + } + } } - } - } - } - }, - "WebSocket": { - "events": { - "event": [ - { - "name": "message", - "type": "MessageEvent" - } - ] - }, - "methods": { - "method": { - "send": { - "name": "send", - "overrideSignatures": [ - "send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void" - ] - } - } - } - }, - "WebTransport": { - "methods": { - "method": { - "createUnidirectionalStream": { - "signature": { - "0": { - "subtype": { - "type": "WritableStream" + }, + "PublicKeyCredentialDescriptor": { + "members": { + "member": { + "type": { + "type": "PublicKeyCredentialType" + }, + "transports": { + "subtype": { + "type": "AuthenticatorTransport" + } + } } - } } - } - } - } - }, - "WebTransportBidirectionalStream": { - "properties": { - "property": { - "readable": { - "type": "ReadableStream" - }, - "writable": { - "type": "WritableStream" - } - } - } - }, - "WebTransportDatagramDuplexStream": { - "properties": { - "property": { - "writable": { - "type": "WritableStream" - } - } - } - }, - "Window": { - "methods": { - "method": { - "alert": { - "overrideSignatures": [ - "alert(message?: any): void" - ] - }, - "postMessage": { - "signature": { - "0": { - "param": [ - { - "name": "transfer", - "overrideType": "Transferable[]" - } - ] - } + }, + "PublicKeyCredentialParameters": { + "members": { + "member": { + "type": { + "type": "PublicKeyCredentialType" + } + } } - } - } - }, - "overrideIndexSignatures": [], - "properties": { - "property": { - "event": { - "deprecated": true - }, - "location": { - "readonly": false - }, - "onorientationchange": { - "deprecated": true - }, - "pageXOffset": { - "deprecated": false - }, - "pageYOffset": { - "deprecated": false - }, - "parent": { - "nullable": false - }, - "self": { - "overrideType": "Window & typeof globalThis" - }, - "window": { - "overrideType": "Window & typeof globalThis" - } - } - } - }, - "Worker": { - "methods": { - "method": { - "postMessage": { - "signature": { - "0": { - "param": [ - { - "name": "transfer", - "overrideType": "Transferable[]" - } - ] - } + }, + "PublicKeyCredentialRequestOptions": { + "members": { + "member": { + "userVerification": { + "type": "UserVerificationRequirement" + } + } } - } - } - } - }, - "WorkerGlobalScope": { - "events": { - "event": [ - { - "name": "error", - "type": "ErrorEvent" - } - ] - }, - "properties": { - "property": { - "self": { - "overrideType": "WorkerGlobalScope & typeof globalThis" - } - } - } - }, - "WritableStream": { - "constructor": { - "force-references": [ - { - "type": "UnderlyingSink" - }, - { - "type": "QueuingStrategy" - } - ], - "signature": { - "0": { - "overrideType": "WritableStream", - "param": [ - { - "name": "underlyingSink", - "overrideType": "UnderlyingSink" - }, - { - "name": "strategy", - "overrideType": "QueuingStrategy" - } - ], + }, + "QueuingStrategy": { "typeParameters": [ - { - "name": "W", - "default": "any" - } - ] - } - } - }, - "methods": { - "method": { - "getWriter": { - "signature": { - "0": { - "overrideType": "WritableStreamDefaultWriter" - } + { + "name": "T", + "default": "any" + } + ], + "members": { + "member": { + "size": { + "overrideType": "QueuingStrategySize" + } + } } - } - } - }, - "typeParameters": [ - { - "name": "W", - "default": "any" - } - ] - }, - "WritableStreamDefaultWriter": { - "constructor": { - "signature": { - "0": { - "overrideType": "WritableStreamDefaultWriter", - "param": [ - { - "name": "stream", - "overrideType": "WritableStream" - } + }, + "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": "W", - "default": "any" - } - ] - } - } - }, - "methods": { - "method": { - "write": { - "signature": { - "0": { - "param": [ - { - "name": "chunk", - "overrideType": "W" - } - ] - } + { + "name": "R", + "default": "any" + } + ], + "members": { + "member": { + "start": { + "overrideType": "UnderlyingSourceStartCallback" + }, + "pull": { + "overrideType": "UnderlyingSourcePullCallback" + } + } } - } - } - }, - "typeParameters": [ - { - "name": "W", - "default": "any" - } - ] - }, - "XMLHttpRequestEventTarget": { - "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" - } - ] - }, - "properties": { - "property": { - "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" - }, - "onloadend": { - "name": "onloadend", - "overrideType": "((this: XMLHttpRequest, ev: ProgressEvent) => any) | null" - }, - "onloadstart": { - "name": "onloadstart", - "overrideType": "((this: XMLHttpRequest, ev: ProgressEvent) => any) | null" - }, - "onprogress": { - "name": "onprogress", - "overrideType": "((this: XMLHttpRequest, ev: ProgressEvent) => any) | null" - }, - "ontimeout": { - "name": "ontimeout", - "overrideType": "((this: XMLHttpRequest, ev: ProgressEvent) => any) | null" - } - } - } - } - } - }, - "mixins": { - "mixin": { - "Animatable": { - "methods": { - "method": { - "animate": { - "name": "animate", - "signature": { - "0": { - "param": [ - { - "name": "keyframes", - "overrideType": "Keyframe[] | PropertyIndexedKeyframes" - } - ] - } + }, + "UIEventInit": { + "members": { + "member": { + "which": { + "deprecated": true + } + } } - } - } - } - }, - "Body": { - "properties": { - "property": { - "body": { - "overrideType": "ReadableStream" - } - } - } - }, - "CanvasCompositing": { - "properties": { - "property": { - "globalCompositeOperation": { - "type": "GlobalCompositeOperation" - } - } - } - }, - "ChildNode": { - "extends": "Node" - }, - "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?" - } - } - } - }, - "MessageEventTarget": { - "events": { - "event": [ - { - "name": "message", - "type": "MessageEvent" - }, - { - "name": "messageerror", - "type": "MessageEvent" - } - ] - }, - "overrideThis": "T", - "typeParameters": [ - { - "name": "T" - } - ] - }, - "ParentNode": { - "extends": "Node" - }, - "WebGLRenderingContextBase": { - "methods": { - "method": { - "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" + }, + "UnderlyingSink": { + "typeParameters": [ + { + "name": "W", + "default": "any" + } ], - "name": "getExtension" - }, - "pixelStorei": { - "name": "pixelStorei", - "signature": { - "0": { - "param": [ - { - "name": "param", - "additionalTypes": [ - "GLboolean" - ] - } - ] - } + "members": { + "member": { + "write": { + "overrideType": "UnderlyingSinkWriteCallback" + }, + "type": { + "overrideType": "undefined" + } + } } - } - } - } - }, - "WindowOrWorkerGlobalScope": { - "methods": { - "method": { - "clearInterval": { - "signature": { - "0": { - "param": [ - { - "name": "id", - "optional": false, - "additionalTypes": [ - "undefined" - ] - } - ] - } + }, + "TokenBinding": { + "members": { + "member": { + "status": { + "type": "TokenBindingStatus" + } + } } - }, - "clearTimeout": { - "signature": { - "0": { - "param": [ - { - "name": "id", - "optional": false, - "additionalTypes": [ - "undefined" - ] - } - ] - } + }, + "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" + } + } } - }, - "structuredClone": { - "signature": { - "0": { - "overrideType": "T", - "param": [ - { - "name": "value", - "overrideType": "T" - } - ], - "typeParameters": [ - { + }, + "ModuleExportDescriptor": { + "legacyNamespace": "WebAssembly" + }, + "ModuleImportDescriptor": { + "legacyNamespace": "WebAssembly" + }, + "MemoryDescriptor": { + "legacyNamespace": "WebAssembly" + }, + "TableDescriptor": { + "legacyNamespace": "WebAssembly" + }, + "GlobalDescriptor": { + "legacyNamespace": "WebAssembly", + "typeParameters": [ + { "name": "T", - "default": "any" - } - ] - } + "extends": "ValueType", + "default": "ValueType" + } + ], + "members": { + "member": { + "value": { + "overrideType": "T" + } + } } - } + }, + "WebAssemblyInstantiatedSource": { + "legacyNamespace": "WebAssembly" } - } } - } }, - "namespaces": [ - { - "name": "console", - "methods": { - "method": { - "timeStamp": { - "name": "timeStamp", - "overrideSignatures": [ - "timeStamp(label?: string): void" - ] - } - } - } - }, - { - "name": "WebAssembly", - "methods": { - "method": { - "instantiate": { - "signature": { - "0": { - "param": [ + "typedefs": { + "typedef": [ + { + "overrideType": "ReadableStreamDefaultController | ReadableByteStreamController", + "name": "ReadableStreamController", + "typeParameters": [ { - "name": "importObject", - "type": "Imports" + "name": "T" } - ] - }, - "1": { - "param": [ + ] + }, + { + "name": "ReadableStreamReader", + "typeParameters": [ { - "name": "importObject", - "type": "Imports" + "name": "T" } - ] - } - } - }, - "instantiateStreaming": { - "signature": { - "0": { - "param": [ + ], + "type": [ + { + "type": "ReadableStreamDefaultReader" + }, { - "name": "importObject", - "type": "Imports" + "type": "ReadableStreamBYOBReader" } - ] - } - } - } - } - } - }, - { - "name": "CSS", - "methods": { - "method": { - "in": { - "exposed": "" + ], + "overrideType": "ReadableStreamDefaultReader | ReadableStreamBYOBReader" + }, + { + "name": "AllowSharedBufferSource", + // No SharedArrayBuffer in ES5, oh no. + "overrideType": "ArrayBuffer | ArrayBufferView" } - } - } - } - ], - "typedefs": { - "typedef": [ + ] + }, + "namespaces": [ { - "overrideType": "ReadableStreamDefaultController | ReadableByteStreamController", - "name": "ReadableStreamController", - "typeParameters": [ - { - "name": "T" + "name": "console", + "methods": { + "method": { + "timeStamp": { + "name": "timeStamp", + "overrideSignatures": [ + "timeStamp(label?: string): void" + ] + } + } } - ] }, { - "name": "ReadableStreamReader", - "typeParameters": [ - { - "name": "T" - } - ], - "type": [ - { - "type": "ReadableStreamDefaultReader" - }, - { - "type": "ReadableStreamBYOBReader" + "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" + } + ] + } + } + } + } } - ], - "overrideType": "ReadableStreamDefaultReader | ReadableStreamBYOBReader" }, { - "name": "AllowSharedBufferSource", - "overrideType": "ArrayBuffer | ArrayBufferView" + "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 9d0b525a8..840150ef9 100644 --- a/inputfiles/removedTypes.jsonc +++ b/inputfiles/removedTypes.jsonc @@ -1,834 +1,874 @@ { "callbackFunctions": { - "callbackFunction": { - "Function": null, - "PerformanceObserverCallback": { - "signature": { - "0": { - "param": [ - "options" - ] - } - } - } - } - }, - "dictionaries": { - "dictionary": { - "AudioContextOptions": { - "members": { - "member": { - "renderSizeHint": null, - "sinkId": null - } - } - }, - "AudioEncoderConfig": { - "members": { - "member": { - "aac": null, - "flac": null - } - } - }, - "AuthenticationExtensionsClientInputs": { - "members": { - "member": { - "appidExclude": null, - "credBlob": null, - "credentialProtectionPolicy": null, - "enforceCredentialProtectionPolicy": null, - "getCredBlob": null, - "hmacGetSecret": null, - "largeBlob": null, - "payment": null - } - } - }, - "AuthenticationExtensionsClientOutputs": { - "members": { - "member": { - "appidExclude": null, - "hmacGetSecret": null, - "largeBlob": null - } - } - }, - "CanvasRenderingContext2DSettings": { - "members": { - "member": { - "colorType": null - } - } - }, - "CookieListItem": { - "members": { - "member": { - "domain": null, - "expires": null, - "partitioned": null, - "path": null, - "sameSite": null, - "secure": null - } - } - }, - "CredentialCreationOptions": { - "members": { - "member": { - "federated": null, - "mediation": null, - "password": null - } - } - }, - "CredentialRequestOptions": { - "members": { - "member": { - "digital": null, - "federated": null, - "identity": null, - "otp": null, - "password": null - } - } - }, - "DisplayMediaStreamOptions": { - "members": { - "member": { - "monitorTypeSurfaces": null, - "selfBrowserSurface": null, - "surfaceSwitching": null, - "systemAudio": null - } - } - }, - "EncodedVideoChunkInit": { - "members": { - "member": { - "transfer": null - } - } - }, - "EncodedVideoChunkMetadata": { - "members": { - "member": { - "alphaSideData": null, - "svc": null - } - } - }, - "FocusOptions": { - "members": { - "member": { - "focusVisible": null - } - } - }, - "FontFaceDescriptors": { - "members": { - "member": { - "variationSettings": null - } - } - }, - "GPURequestAdapterOptions": { - "members": { - "member": { - "featureLevel": null - } - } - }, - "GPUShaderModuleDescriptor": { - "members": { - "member": { - "compilationHints": null - } - } - }, - "GPUTextureViewDescriptor": { - "members": { - "member": { - "usage": null - } - } - }, - "GetAnimationsOptions": { - "members": { - "member": { - "pseudoElement": null - } - } - }, - "IntersectionObserverInit": { - "members": { - "member": { - "delay": null, - "scrollMargin": null, - "trackVisibility": null - } - } - }, - "KeyframeAnimationOptions": { - "members": { - "member": { - "rangeEnd": null, - "rangeStart": null - } - } - }, - "MediaCapabilitiesDecodingInfo": { - "members": { - "member": { - "keySystemAccess": null - } - } - }, - "MediaDecodingConfiguration": { - "members": { - "member": { - "keySystemConfiguration": null - } - } - }, - "MediaMetadataInit": { - "members": { - "member": { - "chapterInfo": null - } - } - }, - "MediaRecorderOptions": { - "members": { - "member": { - "audioBitrateMode": null, - "videoKeyFrameIntervalCount": null, - "videoKeyFrameIntervalDuration": null - } - } - }, - "MediaSessionActionDetails": { - "members": { - "member": { - "isActivating": null - } - } - }, - "MediaTrackCapabilities": { - "members": { - "member": { - "brightness": null, - "colorTemperature": null, - "contrast": null, - "cursor": null, - "exposureCompensation": null, - "exposureMode": null, - "exposureTime": null, - "focusDistance": null, - "focusMode": null, - "iso": null, - "latency": null, - "logicalSurface": null, - "pan": null, - "resizeMode": null, - "saturation": null, - "sharpness": null, - "tilt": null, - "torch": null, - "whiteBalanceMode": null, - "zoom": null - } - } - }, - "MediaTrackConstraintSet": { - "members": { - "member": { - "brightness": null, - "colorTemperature": null, - "contrast": null, - "cursor": null, - "exposureCompensation": null, - "exposureMode": null, - "exposureTime": null, - "focusDistance": null, - "focusMode": null, - "iso": null, - "latency": null, - "logicalSurface": null, - "pan": null, - "pointsOfInterest": null, - "resizeMode": null, - "restrictOwnAudio": null, - "saturation": null, - "sharpness": null, - "suppressLocalAudioPlayback": null, - "tilt": null, - "torch": null, - "whiteBalanceMode": null, - "zoom": null - } - } - }, - "MediaTrackSettings": { - "members": { - "member": { - "brightness": null, - "colorTemperature": null, - "contrast": null, - "cursor": null, - "exposureCompensation": null, - "exposureMode": null, - "exposureTime": null, - "focusDistance": null, - "focusMode": null, - "iso": null, - "latency": null, - "logicalSurface": null, - "pan": null, - "pointsOfInterest": null, - "resizeMode": null, - "restrictOwnAudio": null, - "saturation": null, - "sharpness": null, - "suppressLocalAudioPlayback": null, - "tilt": null, - "torch": null, - "whiteBalanceMode": null, - "zoom": null - } - } - }, - "MediaTrackSupportedConstraints": { - "members": { - "member": { - "brightness": null, - "colorTemperature": null, - "contrast": null, - "cursor": null, - "exposureCompensation": null, - "exposureMode": null, - "exposureTime": null, - "focusDistance": null, - "focusMode": null, - "iso": null, - "latency": null, - "logicalSurface": null, - "pan": null, - "pointsOfInterest": null, - "resizeMode": null, - "restrictOwnAudio": null, - "saturation": null, - "sharpness": null, - "suppressLocalAudioPlayback": null, - "tilt": null, - "torch": null, - "whiteBalanceMode": null, - "zoom": null - } - } - }, - "NotificationOptions": { - "members": { - "member": { - "actions": null, - "image": null, - "renotify": null, - "timestamp": null, - "vibrate": null - } - } - }, - "OfflineAudioContextOptions": { - "members": { - "member": { - "renderSizeHint": null - } - } - }, - "OpusEncoderConfig": { - "members": { - "member": { - "application": null, - "signal": null - } - } - }, - "PaymentDetailsUpdate": { - "members": { - "member": { - "payerErrors": null - } - } - }, - "PaymentOptions": { - "members": { - "member": { - "requestBillingAddress": null - } - } - }, - "PaymentValidationErrors": { - "members": { - "member": { - "paymentMethod": null - } - } - }, - "PerformanceObserverInit": { - "members": { - "member": { - "durationThreshold": null - } - } - }, - "PointerEventInit": { - "members": { - "member": { - "persistentDeviceId": null - } - } - }, - "PopStateEventInit": { - "members": { - "member": { - "hasUAVisualTransition": null - } - } - }, - "PublicKeyCredentialCreationOptions": { - "members": { - "member": { - "attestationFormats": null, - "hints": null - } - } - }, - "PublicKeyCredentialCreationOptionsJSON": { - "members": { - "member": { - "attestationFormats": null - } - } - }, - "PublicKeyCredentialRequestOptions": { - "members": { - "member": { - "hints": null - } - } - }, - "RTCConfiguration": { - "members": { - "member": { - "peerIdentity": null - } - } - }, - "RTCDataChannelInit": { - "members": { - "member": { - "priority": null - } - } - }, - "RTCEncodedAudioFrameMetadata": { - "members": { - "member": { - "captureTime": null, - "mimeType": null, - "receiveTime": null, - "rtpTimestamp": null, - "senderCaptureTimeOffset": null - } - } - }, - "RTCEncodedVideoFrameMetadata": { - "members": { - "member": { - "captureTime": null, - "mimeType": null, - "receiveTime": null, - "rtpTimestamp": null, - "senderCaptureTimeOffset": null - } - } - }, - "RTCInboundRtpStreamStats": { - "members": { - "member": { - "corruptionMeasurements": null, - "powerEfficientDecoder": null, - "totalCorruptionProbability": null, - "totalSquaredCorruptionProbability": null - } - } - }, - "RTCOutboundRtpStreamStats": { - "members": { - "member": { - "encoderImplementation": null, - "powerEfficientEncoder": null - } - } - }, - "RTCRtpEncodingParameters": { - "members": { - "member": { - "codec": null, - "scalabilityMode": null - } - } - }, - "ReadableStreamReadResult": null, - "RequestInit": { - "members": { - "member": { - "adAuctionHeaders": null, - "attributionReporting": null, - "duplex": null, - "privateToken": null, - "sharedStorageWritable": null, - "targetAddressSpace": null - } - } - }, - "ScrollIntoViewOptions": { - "members": { - "member": { - "container": null - } - } - }, - "Transformer": { - "members": { - "member": { - "cancel": null - } - } - }, - "UIEventInit": { - "members": { - "member": { - "sourceCapabilities": null - } - } - }, - "VideoConfiguration": { - "members": { - "member": { - "spatialScalability": null - } - } - }, - "VideoDecoderConfig": { - "members": { - "member": { - "flip": null, - "rotation": null - } - } - }, - "VideoEncoderConfig": { - "members": { - "member": { - "hevc": null - } - } - }, - "VideoEncoderEncodeOptions": { - "members": { - "member": { - "av1": null, - "hevc": null, - "vp9": null - } - } - }, - "VideoFrameBufferInit": { - "members": { - "member": { - "flip": null, - "metadata": null, - "rotation": null, - "transfer": null - } - } - }, - "VideoFrameInit": { - "members": { - "member": { - "flip": null, - "metadata": null, - "rotation": null - } - } - }, - "WebGLContextAttributes": { - "members": { - "member": { - "xrCompatible": null - } - } - }, - "WebTransportOptions": { - "members": { - "member": { - "anticipatedConcurrentIncomingBidirectionalStreams": null, - "anticipatedConcurrentIncomingUnidirectionalStreams": null, - "protocols": null - } - } - }, - "WebTransportSendStreamOptions": { - "members": { - "member": { - "waitUntilAvailable": null + "callbackFunction": { + "Function": null, + "PerformanceObserverCallback": { + "signature": { + "0": { + "param": ["options"] + } + } } - } } - } }, "enums": { - "enum": { - "AuthenticatorTransport": { - "value": [ - "smart-card" - ] - }, - "ConnectionType": { - "value": [ - "wimax" - ] - }, - "GPUBlendFactor": { - "value": [ - "one-minus-src1", - "one-minus-src1-alpha", - "src1", - "src1-alpha" - ] - }, - "GPUFeatureName": { - "value": [ - "clip-distances", - "dual-source-blending", - "float32-blendable", - "texture-compression-astc-sliced-3d", - "texture-compression-bc-sliced-3d" - ] - }, - "GPUVertexFormat": { - "value": [ - "float16", - "sint16", - "sint8", - "snorm16", - "snorm8", - "uint16", - "uint8", - "unorm16", - "unorm8", - "unorm8x4-bgra" - ] - }, - "MediaSessionAction": { - "value": [ - "enterpictureinpicture", - "hangup", - "nextslide", - "previousslide", - "togglecamera", - "togglemicrophone", - "togglescreenshare", - "voiceactivity" - ] - }, - "RequestDestination": { - "value": [ - "json" - ] - }, - "ValueType": null, - "VideoColorPrimaries": { - "value": [ - "bt2020", - "smpte432" - ] - }, - "VideoMatrixCoefficients": { - "value": [ - "bt2020-ncl" - ] - }, - "VideoPixelFormat": { - "value": [ - "I420AP10", - "I420AP12", - "I420P10", - "I420P12", - "I422A", - "I422AP10", - "I422AP12", - "I422P10", - "I422P12", - "I444A", - "I444AP10", - "I444AP12", - "I444P10", - "I444P12" - ] - }, - "VideoTransferCharacteristics": { - "value": [ - "hlg", - "linear", - "pq" - ] + "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": { - "CSSRule": { - "constants": { - "constant": { - "MARGIN_RULE": null - } - } - }, - "Clipboard": { - "methods": { - "method": { - "read": { - "signature": { - "0": { - "param": [ - "formats" - ] - } + "interface": { + "Clipboard": { + "methods": { + "method": { + "read": { + "signature": { + "0": { + "param": ["formats"] // Blink-only as of 2023-11 + } + } + } + } } - } - } - } - }, - "Document": { - "methods": { - "method": { - "elementFromPoint": null, - "elementsFromPoint": null - } - } - }, - "HTMLElement": { - "methods": { - "method": { - "showPopover": { - "signature": { - "0": { - "param": [ - "options" - ] - } + }, + "CSSRule": { + "constants": { + "constant": { + "MARGIN_RULE": null // WebKit only as of 2023-10 + } } - } - } - } - }, - "IntersectionObserverEntry": { - "constructor": null - }, - "OffscreenCanvasRenderingContext2D": { - "implements": [ - "CanvasSettings" - ] - }, - "PaymentResponse": { - "methods": { - "method": { - "complete": { - "signature": { - "0": { - "param": [ - "details" - ] - } + }, + "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 + } } - } - } - } - }, - "RTCEncodedAudioFrame": { - "constructor": null - }, - "RTCEncodedVideoFrame": { - "constructor": null - }, - "ReadableStreamBYOBReader": { - "methods": { - "method": { - "read": { - "signature": { - "0": { - "param": [ - "options" - ] - } + }, + "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 } - } - }, - "SVGFEGaussianBlurElement": { - "constants": { - "constant": { - "SVG_EDGEMODE_DUPLICATE": null, - "SVG_EDGEMODE_NONE": null, - "SVG_EDGEMODE_UNKNOWN": null, - "SVG_EDGEMODE_WRAP": 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, + + // 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, + + // 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 + + // 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 + + // 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 + } + } } - } - }, - "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 } - } }, "typedefs": { - "typedef": [ - "ArrayBufferView" - ] + "typedef": [ + "ArrayBufferView" + ] } } \ No newline at end of file From daaeb4914e67692b736b0f3caf0370e7728caf10 Mon Sep 17 00:00:00 2001 From: Bashamega Date: Sun, 6 Apr 2025 08:37:08 +0200 Subject: [PATCH 07/10] feat: remove comment-json dependency and enhance sorter functionality --- package-lock.json | 66 ------------------------------------- package.json | 1 - src/build/sorter.ts | 80 ++++++++++++++++++++++++++++++--------------- 3 files changed, 53 insertions(+), 94 deletions(-) diff --git a/package-lock.json b/package-lock.json index d260279df..1e9fbfcf7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,6 @@ "@webref/events": "^1.11.3", "@webref/idl": "^3.46.1", "bcd-idl-mapper": "^2.3.0", - "comment-json": "^4.2.5", "cpx2": "^8.0.0", "danger": "^12.2.0", "eslint": "^9.9.0", @@ -1278,13 +1277,6 @@ "dev": true, "license": "Python-2.0" }, - "node_modules/array-timsort": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz", - "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==", - "dev": true, - "license": "MIT" - }, "node_modules/async-retry": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.2.3.tgz", @@ -1420,23 +1412,6 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "node_modules/comment-json": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.5.tgz", - "integrity": "sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-timsort": "^1.0.3", - "core-util-is": "^1.0.3", - "esprima": "^4.0.1", - "has-own-prop": "^2.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1454,13 +1429,6 @@ "url": "https://opencollective.com/core-js" } }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true, - "license": "MIT" - }, "node_modules/cpx2": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/cpx2/-/cpx2-8.0.0.tgz", @@ -2162,20 +2130,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/esquery": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", @@ -2641,16 +2595,6 @@ "node": ">=4" } }, - "node_modules/has-own-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz", - "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/has-property-descriptors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", @@ -3725,16 +3669,6 @@ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", "dev": true }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", diff --git a/package.json b/package.json index 00bf6b80e..93f41712d 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,6 @@ "@webref/events": "^1.11.3", "@webref/idl": "^3.46.1", "bcd-idl-mapper": "^2.3.0", - "comment-json": "^4.2.5", "cpx2": "^8.0.0", "danger": "^12.2.0", "eslint": "^9.9.0", diff --git a/src/build/sorter.ts b/src/build/sorter.ts index 18b71b704..1bb07d063 100644 --- a/src/build/sorter.ts +++ b/src/build/sorter.ts @@ -1,41 +1,67 @@ -import * as fs from "fs"; -import commentJson from "comment-json"; +import { readFileSync } from "fs"; +import { parse, ParseError, visit } from "jsonc-parser"; +import { URL } from "url"; -// A helper function to recursively sort object keys alphabetically. +// Recursively sort object keys function sortObjectKeys(obj: T): T { if (obj && typeof obj === "object" && !Array.isArray(obj)) { - const sorted = {} as any; - Object.keys(obj) - .sort() - .forEach((key) => { - // Recursively sort keys if the value is an object - sorted[key] = sortObjectKeys((obj as any)[key]); - }); - return sorted; + const sorted: Record = {}; + for (const key of Object.keys(obj).sort()) { + sorted[key] = sortObjectKeys((obj as any)[key]); + } + return sorted as T; } return obj; } -export function sortFiles() { - const files = ["overridingTypes", "removedTypes", "addedTypes"]; - files.forEach((file) => { - const filePath = new URL(`../../inputfiles/${file}.jsonc`, import.meta.url); // Replace with your JSONC file path +// Check if the content has trailing commas +function hasTrailingCommas(content: string): boolean { + let foundTrailingComma = false; - // Read the JSONC file content - const fileContent = fs.readFileSync(filePath, "utf-8"); + visit(content, { + onObjectEnd: (offset) => { + const lastChar = content[offset - 1]; + if (lastChar === ",") { + foundTrailingComma = true; + } + }, + onArrayEnd: (offset) => { + const lastChar = content[offset - 1]; + if (lastChar === ",") { + foundTrailingComma = true; + } + }, + }); + + return foundTrailingComma; +} - // Parse the JSONC file while preserving comments - const parsed = commentJson.parse(fileContent, undefined, true); +export function sortFiles(): void { + const filenames = ["overridingTypes", "removedTypes", "addedTypes"]; - // Sort the object keys alphabetically (recursively) - const sortedObject = sortObjectKeys(parsed); + for (const name of filenames) { + const filePath = new URL(`../../inputfiles/${name}.jsonc`, import.meta.url); + const content = readFileSync(filePath, "utf-8"); - // Stringify the sorted object back to JSONC format (preserving comments) - const sortedJsonC = commentJson.stringify(sortedObject, null, 2); + const errors: ParseError[] = []; + const parsed = parse(content, errors, { allowTrailingComma: true }); - // Write the sorted content back to the file - fs.writeFileSync(filePath, sortedJsonC, "utf-8"); - }); + if (errors.length > 0) { + throw new Error(`❌ Syntax error(s) found in ${name}.jsonc:`); + } - console.log("JSONC file keys sorted successfully."); + if (hasTrailingCommas(content)) { + throw new Error(`❌ Trailing comma detected in ${name}.jsonc`); + } + + const sorted = sortObjectKeys(parsed); + const originalStr = JSON.stringify(parsed); + const sortedStr = JSON.stringify(sorted); + + if (originalStr !== sortedStr) { + throw new Error(`❌ Keys are not sorted in ${name}.jsonc`); + } + + console.log(`✅ ${name}.jsonc is valid, sorted, and clean.`); + } } From a91cbf476181f2422abd1d61dffffc78d5aa96ce Mon Sep 17 00:00:00 2001 From: Adam Basha <110662505+Bashamega@users.noreply.github.com> Date: Sat, 12 Apr 2025 08:47:36 +0200 Subject: [PATCH 08/10] Update addedTypes.jsonc --- inputfiles/addedTypes.jsonc | 3218 ++++++++++++++++++----------------- 1 file changed, 1613 insertions(+), 1605 deletions(-) diff --git a/inputfiles/addedTypes.jsonc b/inputfiles/addedTypes.jsonc index c7c174fa1..c83bf00dd 100644 --- a/inputfiles/addedTypes.jsonc +++ b/inputfiles/addedTypes.jsonc @@ -1,1614 +1,1622 @@ { - "mixins": { - "mixin": { - "AbstractWorker": { - "events": { - "event": [ - { - "name": "error", - "type": "ErrorEvent" - } - ] - } - }, - "DocumentAndElementEventHandlers": { - "events": { - "event": [ - { - "name": "copy", - "type": "ClipboardEvent" - }, - { - "name": "cut", - "type": "ClipboardEvent" - }, - { - "name": "paste", - "type": "ClipboardEvent" - } - ] - } - }, - "DocumentOrShadowRoot": { - // Manually moved from Document - // See https://github.com/w3c/csswg-drafts/issues/5886 and https://github.com/w3c/csswg-drafts/issues/556 - "methods": { - "method": { - "elementFromPoint": { - "name": "elementFromPoint", - "overrideSignatures": [ - "elementFromPoint(x: number, y: number): Element | null" - ] - }, - "elementsFromPoint": { - "name": "elementsFromPoint", - "overrideSignatures": [ - "elementsFromPoint(x: number, y: number): Element[]" - ] - } - } - } - }, - "GlobalEventHandlers": { - "events": { - "event": [ - { - "name": "abort", - "type": "UIEvent" - }, - { - "name": "auxclick", - "type": "MouseEvent" - }, - { - "name": "beforeinput", - "type": "InputEvent" - }, - { - "name": "blur", - "type": "FocusEvent" - }, - { - "name": "click", - "type": "MouseEvent" - }, - { - "name": "compositionstart", - "type": "CompositionEvent" - }, - { - "name": "compositionupdate", - "type": "CompositionEvent" - }, - { - "name": "compositionend", - "type": "CompositionEvent" - }, - { - "name": "drag", - "type": "DragEvent" - }, - { - "name": "dragend", - "type": "DragEvent" - }, - { - "name": "dragenter", - "type": "DragEvent" - }, - { - "name": "dragleave", - "type": "DragEvent" - }, - { - "name": "dragover", - "type": "DragEvent" - }, - { - "name": "dragstart", - "type": "DragEvent" - }, - { - "name": "drop", - "type": "DragEvent" - }, - { - "name": "error", - "type": "ErrorEvent" - }, - { - "name": "focus", - "type": "FocusEvent" - }, - { - "name": "focusin", - "type": "FocusEvent" - }, - { - "name": "focusout", - "type": "FocusEvent" - }, - { - "name": "formdata", - "type": "FormDataEvent" - }, - { - "name": "keydown", - "type": "KeyboardEvent" - }, - { - "name": "keypress", - "type": "KeyboardEvent" - }, - { - "name": "keyup", - "type": "KeyboardEvent" - }, - { - "name": "mousedown", - "type": "MouseEvent" - }, - { - "name": "mouseenter", - "type": "MouseEvent" - }, - { - "name": "mouseleave", - "type": "MouseEvent" - }, - { - "name": "mousemove", - "type": "MouseEvent" - }, - { - "name": "mouseout", - "type": "MouseEvent" - }, - { - "name": "mouseover", - "type": "MouseEvent" - }, - { - "name": "mouseup", - "type": "MouseEvent" - }, - { - "name": "progress", - "type": "ProgressEvent" - }, - { - "name": "resize", - "type": "UIEvent" - }, - { - "name": "wheel", - "type": "WheelEvent" - }, - { - "name": "securitypolicyviolation", - "type": "SecurityPolicyViolationEvent" - }, - { - "name": "submit", - "type": "SubmitEvent" - }, - { - "name": "dblclick", - "type": "MouseEvent" - }, - { - "name": "contextmenu", - "type": "MouseEvent" - } - ] - } - }, - "WebGLRenderingContextBase": { - "properties": { - "property": { - "canvas": { - "exposed": "Window" - } - } - } - }, - "WindowEventHandlers": { - "events": { - "event": [ - { - "name": "beforeunload", - "type": "BeforeUnloadEvent" - }, - { - "name": "gamepadconnected", - "type": "GamepadEvent" - }, - { - "name": "gamepaddisconnected", - "type": "GamepadEvent" - }, - { - "name": "hashchange", - "type": "HashChangeEvent" - }, - { - "name": "message", - "type": "MessageEvent" - }, - { - "name": "messageerror", - "type": "MessageEvent" - }, - { - "name": "pagehide", - "type": "PageTransitionEvent" - }, - { - "name": "pageshow", - "type": "PageTransitionEvent" - }, - { - "name": "popstate", - "type": "PopStateEvent" - }, - { - "name": "storage", - "type": "StorageEvent" - }, - { - "name": "unhandledrejection", - "type": "PromiseRejectionEvent" - }, - { - "name": "rejectionhandled", - "type": "PromiseRejectionEvent" - } - ] - } - } - } - }, - "callbackInterfaces": { - "interface": {} - }, - "enums": { - "enum": { - "InsertPosition": { - "name": "InsertPosition", - "value": [ - "beforebegin", - "beforeend", - "afterbegin", - "afterend" - ] - }, - "FontDisplay": { - "name": "FontDisplay", - // https://w3c.github.io/csswg-drafts/css-fonts-4/#font-display-desc - "value": [ - "auto", - "block", - "swap", - "fallback", - "optional" - ] - }, - "ClientType": { - "name": "ClientTypes" - }, - "RTCStatsIceCandidatePairState": { + "mixins": { + "mixin": { + "AbstractWorker": { + "events": { + "event": [ + { + "name": "error", + "type": "ErrorEvent" + } + ] + } + }, + "DocumentAndElementEventHandlers": { + "events": { + "event": [ + { + "name": "copy", + "type": "ClipboardEvent" + }, + { + "name": "cut", + "type": "ClipboardEvent" + }, + { + "name": "paste", + "type": "ClipboardEvent" + } + ] + } + }, + "DocumentOrShadowRoot": { + // Manually moved from Document + // See https://github.com/w3c/csswg-drafts/issues/5886 and https://github.com/w3c/csswg-drafts/issues/556 + "methods": { + "method": { + "elementFromPoint": { + "name": "elementFromPoint", + "overrideSignatures": [ + "elementFromPoint(x: number, y: number): Element | null" + ] + }, + "elementsFromPoint": { + "name": "elementsFromPoint", + "overrideSignatures": [ + "elementsFromPoint(x: number, y: number): Element[]" + ] + } + } + } + }, + "GlobalEventHandlers": { + "events": { + "event": [ + { + "name": "abort", + "type": "UIEvent" + }, + { + "name": "auxclick", + "type": "MouseEvent" + }, + { + "name": "beforeinput", + "type": "InputEvent" + }, + { + "name": "blur", + "type": "FocusEvent" + }, + { + "name": "click", + "type": "MouseEvent" + }, + { + "name": "compositionstart", + "type": "CompositionEvent" + }, + { + "name": "compositionupdate", + "type": "CompositionEvent" + }, + { + "name": "compositionend", + "type": "CompositionEvent" + }, + { + "name": "drag", + "type": "DragEvent" + }, + { + "name": "dragend", + "type": "DragEvent" + }, + { + "name": "dragenter", + "type": "DragEvent" + }, + { + "name": "dragleave", + "type": "DragEvent" + }, + { + "name": "dragover", + "type": "DragEvent" + }, + { + "name": "dragstart", + "type": "DragEvent" + }, + { + "name": "drop", + "type": "DragEvent" + }, + { + "name": "error", + "type": "ErrorEvent" + }, + { + "name": "focus", + "type": "FocusEvent" + }, + { + "name": "focusin", + "type": "FocusEvent" + }, + { + "name": "focusout", + "type": "FocusEvent" + }, + { + "name": "formdata", + "type": "FormDataEvent" + }, + { + "name": "keydown", + "type": "KeyboardEvent" + }, + { + "name": "keypress", + "type": "KeyboardEvent" + }, + { + "name": "keyup", + "type": "KeyboardEvent" + }, + { + "name": "mousedown", + "type": "MouseEvent" + }, + { + "name": "mouseenter", + "type": "MouseEvent" + }, + { + "name": "mouseleave", + "type": "MouseEvent" + }, + { + "name": "mousemove", + "type": "MouseEvent" + }, + { + "name": "mouseout", + "type": "MouseEvent" + }, + { + "name": "mouseover", + "type": "MouseEvent" + }, + { + "name": "mouseup", + "type": "MouseEvent" + }, + { + "name": "progress", + "type": "ProgressEvent" + }, + { + "name": "resize", + "type": "UIEvent" + }, + { + "name": "wheel", + "type": "WheelEvent" + }, + { + "name": "securitypolicyviolation", + "type": "SecurityPolicyViolationEvent" + }, + { + "name": "submit", + "type": "SubmitEvent" + }, + { + "name": "dblclick", + "type": "MouseEvent" + }, + { + "name": "contextmenu", + "type": "MouseEvent" + } + ] + } + }, + "WebGLRenderingContextBase": { + "properties": { + "property": { + "canvas": { + "exposed": "Window" + } + } + } + }, + "WindowEventHandlers": { + "events": { + "event": [ + { + "name": "beforeunload", + "type": "BeforeUnloadEvent" + }, + { + "name": "gamepadconnected", + "type": "GamepadEvent" + }, + { + "name": "gamepaddisconnected", + "type": "GamepadEvent" + }, + { + "name": "hashchange", + "type": "HashChangeEvent" + }, + { + "name": "message", + "type": "MessageEvent" + }, + { + "name": "messageerror", + "type": "MessageEvent" + }, + { + "name": "pagehide", + "type": "PageTransitionEvent" + }, + { + "name": "pageshow", + "type": "PageTransitionEvent" + }, + { + "name": "pageswap", + "type": "PageSwapEvent" + }, + { + "name": "pagereveal", + "type": "PageRevealEvent" + }, + { + "name": "popstate", + "type": "PopStateEvent" + }, + { + "name": "storage", + "type": "StorageEvent" + }, + { + "name": "unhandledrejection", + "type": "PromiseRejectionEvent" + }, + { + "name": "rejectionhandled", + "type": "PromiseRejectionEvent" + } + ] + } + } + } + }, + "callbackInterfaces": { + "interface": {} + }, + "enums": { + "enum": { + "InsertPosition": { + "name": "InsertPosition", "value": [ - "inprogress" + "beforebegin", + "beforeend", + "afterbegin", + "afterend" ] - }, - "GlobalCompositeOperation": { - "name": "GlobalCompositeOperation", + }, + "FontDisplay": { + "name": "FontDisplay", + // https://w3c.github.io/csswg-drafts/css-fonts-4/#font-display-desc "value": [ - "source-over", - "source-in", - "source-out", - "source-atop", - "destination-over", - "destination-in", - "destination-out", - "destination-atop", - "lighter", - "copy", - "xor", - "multiply", - "screen", - "overlay", - "darken", - "lighten", - "color-dodge", - "color-burn", - "hard-light", - "soft-light", - "difference", - "exclusion", - "hue", - "saturation", - "color", - "luminosity" + "auto", + "block", + "swap", + "fallback", + "optional" ] - }, - "PermissionName": { - "name": "PermissionName", - // This is a subset of the permissions defined in the spec: - // https://w3c.github.io/powerful-features-registry/#registry-table-of-powerful-features - // Please add a feature only when it's supported by multiple engines. - "value": [ - // Full support: https://developer.mozilla.org/en-US/docs/Web/API/Permissions_API#browser_compatibility - "camera", - // Full support: https://developer.mozilla.org/en-US/docs/Web/API/Geolocation_API#browser_compatibility - "geolocation", - // Full support: https://developer.mozilla.org/en-US/docs/Web/API/Permissions_API#browser_compatibility - "microphone", - // Gecko and Blink: https://developer.mozilla.org/en-US/docs/Web/API/Web_MIDI_API#browser_compatibility - "midi", - // Full support: https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API#browser_compatibility - "notifications", - // Gecko and Blink: https://developer.mozilla.org/en-US/docs/Web/API/Storage_API#browser_compatibility - "persistent-storage", - // Full support: https://developer.mozilla.org/en-US/docs/Web/API/Push_API#browser_compatibility - "push", - // Full support: https://developer.mozilla.org/en-US/docs/Web/API/Screen_Wake_Lock_API#browser_compatibility - "screen-wake-lock", - // Full support: https://developer.mozilla.org/en-US/docs/Web/API/Storage_Access_API#browser_compatibility - "storage-access" - ] - }, - "AutoFillBase": { - "name": "AutoFillBase", - "value": [ - // Off - "off", - // Automatic - "on", - "" - ] - }, - "AutoFillAddressKind": { - "name": "AutoFillAddressKind", - "value": [ - "shipping", - "billing" - ] - }, - "AutoFillNormalField": { - "name": "AutoFillNormalField", - "value": [ - "name", - "honorific-prefix", - "given-name", - "additional-name", - "family-name", - "honorific-suffix", + }, + "ClientType": { + "name": "ClientTypes" + }, + "RTCStatsIceCandidatePairState": { + "value": [ + "inprogress" + ] + }, + "GlobalCompositeOperation": { + "name": "GlobalCompositeOperation", + "value": [ + "source-over", + "source-in", + "source-out", + "source-atop", + "destination-over", + "destination-in", + "destination-out", + "destination-atop", + "lighter", + "copy", + "xor", + "multiply", + "screen", + "overlay", + "darken", + "lighten", + "color-dodge", + "color-burn", + "hard-light", + "soft-light", + "difference", + "exclusion", + "hue", + "saturation", + "color", + "luminosity" + ] + }, + "PermissionName": { + "name": "PermissionName", + // This is a subset of the permissions defined in the spec: + // https://w3c.github.io/powerful-features-registry/#registry-table-of-powerful-features + // Please add a feature only when it's supported by multiple engines. + "value": [ + // Full support: https://developer.mozilla.org/en-US/docs/Web/API/Permissions_API#browser_compatibility + "camera", + // Full support: https://developer.mozilla.org/en-US/docs/Web/API/Geolocation_API#browser_compatibility + "geolocation", + // Full support: https://developer.mozilla.org/en-US/docs/Web/API/Permissions_API#browser_compatibility + "microphone", + // Gecko and Blink: https://developer.mozilla.org/en-US/docs/Web/API/Web_MIDI_API#browser_compatibility + "midi", + // Full support: https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API#browser_compatibility + "notifications", + // Gecko and Blink: https://developer.mozilla.org/en-US/docs/Web/API/Storage_API#browser_compatibility + "persistent-storage", + // Full support: https://developer.mozilla.org/en-US/docs/Web/API/Push_API#browser_compatibility + "push", + // Full support: https://developer.mozilla.org/en-US/docs/Web/API/Screen_Wake_Lock_API#browser_compatibility + "screen-wake-lock", + // Full support: https://developer.mozilla.org/en-US/docs/Web/API/Storage_Access_API#browser_compatibility + "storage-access" + ] + }, + "AutoFillBase": { + "name": "AutoFillBase", + "value": [ + // Off + "off", + // Automatic + "on", + "" + ] + }, + "AutoFillAddressKind": { + "name": "AutoFillAddressKind", + "value": [ + "shipping", + "billing" + ] + }, + "AutoFillNormalField": { + "name": "AutoFillNormalField", + "value": [ + "name", + "honorific-prefix", + "given-name", + "additional-name", + "family-name", + "honorific-suffix", - "username", - "new-password", - "current-password", - // Supported in iOS Safari too even though WPT tests - // for Safari currently fail as of 2023-06. - "one-time-code", + "username", + "new-password", + "current-password", + // Supported in iOS Safari too even though WPT tests + // for Safari currently fail as of 2023-06. + "one-time-code", - "organization", - "street-address", - "address-line1", - "address-line2", - "address-line3", - "address-level4", - "address-level3", - "address-level2", - "address-level1", - "country", - "country-name", - "postal-code", + "organization", + "street-address", + "address-line1", + "address-line2", + "address-line3", + "address-level4", + "address-level3", + "address-level2", + "address-level1", + "country", + "country-name", + "postal-code", - "cc-name", - "cc-given-name", - "cc-family-name", - "cc-number", - "cc-exp", - "cc-exp-month", - "cc-exp-year", - "cc-csc", - "cc-type", - "transaction-currency", - "transaction-amount", + "cc-name", + "cc-given-name", + "cc-family-name", + "cc-number", + "cc-exp", + "cc-exp-month", + "cc-exp-year", + "cc-csc", + "cc-type", + "transaction-currency", + "transaction-amount", - "bday-day", - "bday-month", - "bday-year" - ] - }, - "AutoFillContactKind": { - "name": "AutoFillContactKind", - "value": [ - "home", - "work", - "mobile" - ] - }, - "AutoFillContactField": { - "name": "AutoFillContactField", - "value": [ - "tel", - "tel-country-code", - "tel-national", - "tel-area-code", - "tel-local", - "tel-local-prefix", - "tel-local-suffix", - "tel-extension", - "email" - ] - }, - "AutoFillCredentialField": { - "name": "AutoFillCredentialField", - "value": [ - "webauthn" - ] - } - } - }, - "interfaces": { - "interface": { - // ImportMeta is not a true DOM interface, but we are forced to declare it as one in order to emit method definitions. - // We cannot define methods as dictionary properties with function types, - // as this would cause conflicts with ImportMeta method overrides in places like @types/node. - "ImportMeta": { - "name": "ImportMeta", - "exposed": "Window Worker", - "noInterfaceObject": true, - "properties": { - "property": { - "url": { - "name": "url", - "type": "DOMString" - } - } - }, - "methods": { - "method": { - "resolve": { - "name": "resolve", - "signature": [ - { - "param": [ - { - "name": "specifier", - "type": "DOMString" - } - ], - "type": "DOMString" - } - ] - } - } - } - }, - "AudioWorkletProcessorImpl": { - "name": "AudioWorkletProcessorImpl", - "extends": "AudioWorkletProcessor", - "methods": { - "method": { - "process": { - "name": "process", - "overrideSignatures": [ - "process(inputs: Float32Array[][], outputs: Float32Array[][], parameters: Record): boolean" - ] - } - } - }, - "exposed": "AudioWorklet", - "noInterfaceObject": true - }, - "BroadcastChannel": { - "events": { - "event": [ - { - "name": "message", - "type": "MessageEvent" - }, - { - "name": "messageerror", - "type": "MessageEvent" - } - ] - } - }, - "CompileError": { - "name": "CompileError", - "extends": "Error", - "legacyNamespace": "WebAssembly", - "constructor": { - "overrideSignatures": [ - "new(message?: string): CompileError", - "(message?: string): CompileError" - ] - } - }, - "DeviceMotionEventAcceleration": { - "noInterfaceObject": true - }, - "DeviceMotionEventRotationRate": { - "noInterfaceObject": true - }, - "HTMLImageElement": { - "name": "HTMLImageElement", - "properties": { - "property": { - "decoding": { - "name": "decoding", - "overrideType": "\"async\" | \"sync\" | \"auto\"" - }, - "loading": { - "overrideType": "\"eager\" | \"lazy\"" - } - } - } - }, - "HTMLTableDataCellElement": { - "name": "HTMLTableDataCellElement", - "extends": "HTMLTableCellElement", - "noInterfaceObject": true, - "deprecated": "prefer HTMLTableCellElement", - "exposed": "Window" - }, - "HTMLTableHeaderCellElement": { - "name": "HTMLTableHeaderCellElement", - "extends": "HTMLTableCellElement", - "noInterfaceObject": true, - "deprecated": "prefer HTMLTableCellElement", - "exposed": "Window" - }, - "HTMLDocument": { - "name": "HTMLDocument", - "extends": "Document", - "deprecated": "use Document", - "exposed": "Window" - }, - "HTMLMediaElement": { - "events": { - "event": [ - { - "name": "encrypted", - "type": "MediaEncryptedEvent" - } - ] - } - }, - "CSSStyleDeclaration": { - "name": "CSSStyleDeclaration", - "properties": { - "property": { - "imageOrientation": { - "deprecated": true - }, - "wordWrap": { - "deprecated": true - } - } - } - }, - "Window": { - "name": "Window", - "methods": { - "method": { - "captureEvents": { - "deprecated": true - } - } - }, - "overrideIndexSignatures": [ - "[index: number]: Window" - ], - "events": { - "event": [ - { - "name": "devicemotion", - "type": "DeviceMotionEvent" - }, - { - "name": "deviceorientation", - "type": "DeviceOrientationEvent" - }, - { - "name": "deviceorientationabsolute", - "type": "DeviceOrientationEvent" - }, - { - "name": "gamepadconnected", - "type": "GamepadEvent" - }, - { - "name": "gamepaddisconnected", - "type": "GamepadEvent" - }, - { - "name": "DOMContentLoaded", - "type": "Event" - } - ] - } - }, - "URLSearchParams": { - "name": "URLSearchParams", - "constructor": { - "signature": { - "0": { - "param": [ - { - "name": "init", - "additionalTypes": ["URLSearchParams"] - } - ] - } - } - } - }, - "NodeListOf": { - "name": "NodeListOf", - "typeParameters": [ - { - "name": "TNode", - "extends": "Node" - } - ], - "exposed": "Window", - "extends": "NodeList", - "methods": { - "method": { - "item": { - "name": "item", - "overrideSignatures": [ - "item(index: number): TNode" - ] - } - } - }, - "noInterfaceObject": true, - "overrideIndexSignatures": [ - "[index: number]: TNode" - ], - "iterator": { - "kind": "iterable", - "type": [ - { - "overrideType": "TNode" - } - ] - } - }, - "HTMLCollectionOf": { - "name": "HTMLCollectionOf", - "typeParameters": [ - { - "name": "T", - "extends": "Element" - } - ], - "exposed": "Window", - "extends": "HTMLCollection", - "methods": { - "method": { - "item": { - "getter": true, - "signature": [ - { - "nullable": true, - "overrideType": "T", - "param": [ - { - "name": "index", - "type": "unsigned long" - } - ] - } - ], - "specs": "html5", - "name": "item" - }, - "namedItem": { - "name": "namedItem", - "overrideSignatures": [ - "namedItem(name: string): T | null" - ] - } - } - }, - "noInterfaceObject": true - }, - "Element": { - "name": "Element", - "methods": { - "method": { - "getElementsByClassName": { - "name": "getElementsByClassName", - "signature": { - "0": { - "overrideType": "HTMLCollectionOf" - } - } - }, - "closest": { - "additionalSignatures": [ - "closest(selector: K): HTMLElementTagNameMap[K] | null", - "closest(selector: K): SVGElementTagNameMap[K] | null", - "closest(selector: K): MathMLElementTagNameMap[K] | null" - ], - "signature": { - "0": { - "typeParameters": [ - { - "name": "E", - "extends": "Element", - "default": "Element" - } - ], - "overrideType": "E" - } - } - }, - "insertAdjacentElement": { - "signature": { - "0": { - "param": [ - { - "name": "where", - "type": "InsertPosition" - } - ] - } - } - }, - "insertAdjacentHTML": { - "signature": { - "0": { - "param": [ - { - "name": "position", - "type": "InsertPosition" - } - ] - } - } - }, - "insertAdjacentText": { - "signature": { - "0": { - "param": [ - { - "name": "where", - "type": "InsertPosition" - } - ] - } - } - } - } - }, - "properties": { - "property": { - "ownerDocument": { - "name": "ownerDocument", - "readonly": true, - "type": "Document" - } - } - } - }, - // This is used in many DT libraries, via ckeditor - "ClientRect": { - "name": "ClientRect", - "exposed": "Window", - "deprecated": true, - "extends": "DOMRect", - "noInterfaceObject": true - }, - /* - Keeping EventListener and EventListenerObject isn't the most elegant way to handle - the event listeners, but we need to keep the EventListener as an extendable interface - for libraries like angular. - */ - "EventListener": { - "name": "EventListener", - "noInterfaceObject": true, - "methods": { - "method": { - // This is a hack to add a call signature, but I think it's reasonable - // as it means we don't have to add a call signatures section to the - // emitter for this one case. - "callable": { - "overrideSignatures": [ - "(evt: Event): void" - ] - } - } - } - }, - "EventListenerObject": { - "name": "EventListenerObject", - "noInterfaceObject": true, - "methods": { - "method": { - "handleEvent": { - "overrideSignatures": [ - "handleEvent(object: Event): void" - ] - } - } - } - }, - "Document": { - "methods": { - "method": { - "createElementNS": { - "name": "createElementNS", - "additionalSignatures": [ - "createElementNS(namespaceURI: \"http://www.w3.org/1999/xhtml\", qualifiedName: string): HTMLElement", - "createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: K): SVGElementTagNameMap[K]", - "createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: string): SVGElement", - "createElementNS(namespaceURI: \"http://www.w3.org/1998/Math/MathML\", qualifiedName: K): MathMLElementTagNameMap[K]", - "createElementNS(namespaceURI: \"http://www.w3.org/1998/Math/MathML\", qualifiedName: string): MathMLElement", - "createElementNS(namespaceURI: string | null, qualifiedName: string, options?: ElementCreationOptions): Element" - ] - }, - "caretRangeFromPoint": { - "name": "caretRangeFromPoint", - "deprecated": true, - "overrideSignatures": [ - "caretRangeFromPoint(x: number, y: number): Range | null" - ] - } - } - }, - "properties": { - "property": { - "ownerDocument": { - "name": "ownerDocument", - "readonly": true, - "overrideType": "null" - } - } - }, - "events": { - "event": [ - { - "name": "DOMContentLoaded", - "type": "Event" - } - ] - } - }, - // This is used in the React d.ts files, and not including - // it would force an update for anyone using React. - "StyleMedia": { - "name": "StyleMedia", - "exposed": "Window", - "noInterfaceObject": true, - "deprecated": true, - "properties": { - "property": { - "type": { - "name": "type", - "type": "DOMString" - } - } - }, - "methods": { - "method": { - "matchMedium": { - "name": "matchMedium", - "overrideSignatures": [ - "matchMedium(mediaquery: string): boolean" - ] - } - } - } - }, - "Navigator": { - "name": "Navigator", - "properties": { - "property": { - "doNotTrack": { - "name": "doNotTrack", - "readonly": true, - "nullable": true, - "type": "DOMString" - } - } - } - }, - "HTMLIFrameElement": { - "name": "HTMLIFrameElement", - "properties": { - "property": { - "referrerPolicy": { - "type": "ReferrerPolicy" - }, - "loading": { - "name": "loading", - "overrideType": "\"eager\" | \"lazy\"" - } - } - } - }, - "IDBDatabase": { - "name": "IDBDatabase", - "events": { - "event": [ - { - "name": "versionchange", - "type": "IDBVersionChangeEvent" - } - ] - } - }, - "IDBOpenDBRequest": { - "name": "IDBOpenDBRequest", - "extends": "IDBRequest", - "events": { - "event": [ - { - "name": "upgradeneeded", - "type": "IDBVersionChangeEvent" - }, - { - "name": "blocked", - "type": "IDBVersionChangeEvent" - } - ] - } - }, - "UIEvent": { - "properties": { - "property": { - "which": { - "deprecated": true - } - } - } - }, - "SpeechSynthesisUtterance": { - "events": { - "event": [ - { - "name": "start", - "type": "SpeechSynthesisEvent" - }, - { - "name": "end", - "type": "SpeechSynthesisEvent" - }, - { - "name": "error", - "type": "SpeechSynthesisErrorEvent" - }, - { - "name": "pause", - "type": "SpeechSynthesisEvent" - }, - { - "name": "resume", - "type": "SpeechSynthesisEvent" - }, - { - "name": "mark", - "type": "SpeechSynthesisEvent" - }, - { - "name": "boundary", - "type": "SpeechSynthesisEvent" - } - ] - } - }, - "TextTrackList": { - "events": { - "event": [ - { - "name": "addtrack", - "type": "TrackEvent" - }, - { - "name": "removetrack", - "type": "TrackEvent" - } - ] - } - }, - "DOMMatrixReadOnly": { - "methods": { - "method": { - "scaleNonUniform": { - "deprecated": true - } - } - } - }, - "EventSource": { - "events": { - "event": [ - { - "name": "message", - "type": "MessageEvent" - } - ] - } - }, - "HTMLBodyElement": { - "properties": { - "property": { - "onorientationchange": { - "deprecated": true - } - } - } - }, - "HTMLInputElement": { - "properties": { - "property": { - "labels": { - "overrideType": "NodeListOf" - } - } - } - }, - "HTMLLinkElement": { - "properties": { - "property": { - "charset": { - "deprecated": true - }, - "rev": { - "deprecated": true - }, - "target": { - "deprecated": true - } - } - } - }, - "KHR_parallel_shader_compile": { - "overrideExposed": "Window Worker" - }, - "OVR_multiview2": { - "overrideExposed": "Window Worker" - }, - // The spec removed `timestamp` but browsers still have it. - // https://github.com/w3c/webrtc-encoded-transform/pull/204 - "RTCEncodedAudioFrame": { - "properties": { - "property": { - "timestamp": { - "mdnUrl": "https://developer.mozilla.org/docs/Web/API/RTCEncodedAudioFrame/timestamp", - "name": "timestamp", - "type": "long long", - "readonly": true - } - } - } - }, - "RTCEncodedVideoFrame": { - "properties": { - "property": { - "timestamp": { - "mdnUrl": "https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame/timestamp", - "name": "timestamp", - "type": "long long", - "readonly": true - } - } - } - }, - "RTCDTMFSender": { - "events": { - "event": [ - { - "name": "tonechange", - "type": "RTCDTMFToneChangeEvent" - } - ] - } - }, - "RuntimeError": { - "name": "RuntimeError", - "extends": "Error", - "legacyNamespace": "WebAssembly", - "constructor": { - "overrideSignatures": [ - "new(message?: string): RuntimeError", - "(message?: string): RuntimeError" - ] - } - }, - "SVGStyleElement": { - "properties": { - "property": { - "disabled": { - "name": "disabled", - "type": "boolean" - } - } - } - }, - "LinkError": { - "name": "LinkError", - "extends": "Error", - "legacyNamespace": "WebAssembly", - "constructor": { - "overrideSignatures": [ - "new(message?: string): LinkError", - "(message?: string): LinkError" - ] - } - }, - "MediaRecorder": { - "events": { - "event": [ - { - "name": "dataavailable", - "type": "BlobEvent" - } - ] - } - }, - "MediaStream": { - "events": { - "event": [ - { - "name": "addtrack", - "type": "MediaStreamTrackEvent" - }, - { - "name": "removetrack", - "type": "MediaStreamTrackEvent" - } - ] - } - }, - "ProgressEvent": { - "typeParameters": [ - { - "name": "T", - "extends": "EventTarget", - "default": "EventTarget" - } - ], - "properties": { - "property": { - "target": { - "name": "target", - "readonly": true, - "nullable": true, - "overrideType": "T" - } - } - } - }, - "SharedWorkerGlobalScope": { - "events": { - "event": [ - { - "name": "connect", - "type": "MessageEvent" - } - ] - } - }, - "Attr": { - "name": "Attr", - "properties": { - "property": { - "ownerDocument": { - "name": "ownerDocument", - "readonly": true, - "type": "Document" - } - } - } - }, - "CharacterData": { - "name": "CharacterData", - "properties": { - "property": { - "ownerDocument": { - "name": "ownerDocument", - "readonly": true, - "type": "Document" - } - } - } - }, - "DocumentType": { - "name": "DocumentType", - "properties": { - "property": { - "ownerDocument": { - "name": "ownerDocument", - "readonly": true, - "type": "Document" - } - } - } - }, - "ProcessingInstruction": { - "name": "ProcessingInstruction", - "properties": { - "property": { - "ownerDocument": { - "name": "ownerDocument", - "readonly": true, - "type": "Document" - } - } - } - }, - "WebSocket": { - "events": { - "event": [ - { - "name": "close", - "type": "CloseEvent" - } - ] - } - }, - "WorkerGlobalScope": { - "events": { - "event": [ - { - "name": "rejectionhandled", - "type": "PromiseRejectionEvent" - }, - { - "name": "unhandledrejection", - "type": "PromiseRejectionEvent" - } - ] - } - }, - "FileSystemFileHandle": { - "properties": { - "property": { - "kind": { - "name": "kind", - "readonly": true, - "overrideType": "\"file\"" - } - } - } - }, - "FileSystemDirectoryHandle": { - "properties": { - "property": { - "kind": { - "name": "kind", - "readonly": true, - "overrideType": "\"directory\"" - } - } - } - } - } - }, - "dictionaries": { - "dictionary": { - "KeyboardEventInit": { - "members": { - "member": { - "charCode": { - "deprecated": true - }, - "keyCode": { - "deprecated": true - } - } - } - }, - "MemoryDescriptor": { - "members": { - "member": { - "shared": { - "name": "shared", - "type": "boolean" - } - } - } - }, - "ReadableStreamReadDoneResult": { - "name": "ReadableStreamReadDoneResult", - "typeParameters": [ - { - "name": "T" - } - ], - "members": { - "member": { - "done": { - "name": "done", - "overrideType": "true", - "required": true - }, - "value": { - "name": "value", - "overrideType": "T | undefined", - "required": true - } - } - } - }, - "ReadableStreamReadValueResult": { - "name": "ReadableStreamReadValueResult", - "typeParameters": [ - { - "name": "T" - } - ], - "members": { - "member": { - "done": { - "name": "done", - "overrideType": "false", - "required": true - }, - "value": { - "name": "value", - "overrideType": "T", - "required": true - } - } - } - }, - "UnderlyingByteSource": { - "name": "UnderlyingByteSource", - "members": { - "member": { - "type": { - "name": "type", - "required": true, - "overrideType": "\"bytes\"" - }, - "autoAllocateChunkSize": { - "name": "autoAllocateChunkSize", - "type": "unsigned long long" - }, - "start": { - "name": "start", - "overrideType": "(controller: ReadableByteStreamController) => any" - }, - "pull": { - "name": "pull", - "overrideType": "(controller: ReadableByteStreamController) => void | PromiseLike" - }, - "cancel": { - "name": "cancel", - "type": "UnderlyingSourceCancelCallback" - } - } - } - }, - "UnderlyingDefaultSource": { - "name": "UnderlyingDefaultSource", - "typeParameters": [ - { - "name": "R", - "default": "any" - } - ], - "members": { - "member": { - "type": { - "name": "type", - "type": "undefined" - }, - "start": { - "name": "start", - "overrideType": "(controller: ReadableStreamDefaultController) => any" - }, - "pull": { - "name": "pull", - "overrideType": "(controller: ReadableStreamDefaultController) => void | PromiseLike" - }, - "cancel": { - "name": "cancel", - "type": "UnderlyingSourceCancelCallback" - } - } - } - }, - "ValueTypeMap": { - "name": "ValueTypeMap", - "legacyNamespace": "WebAssembly", - "exposed":"Window Worker Worklet", - "members": { - "member": { - "anyfunc": { - "name": "anyfunc", - "overrideType": "Function", - "required": 1 - }, - "externref": { - "name": "externref", - "overrideType": "any", - "required": 1 - }, - "f32": { - "name": "f32", - "overrideType": "number", - "required": 1 - }, - "f64": { - "name": "f64", - "overrideType": "number", - "required": 1 - }, - "i32": { - "name": "i32", - "overrideType": "number", - "required": 1 - }, - "i64": { - "name": "i64", - "overrideType": "bigint", - "required": 1 - }, - "v128": { - "name": "v128", - "overrideType": "never", - "required": 1 - } - } - } - } - } - }, - "typedefs": { - "typedef": [ - { - "type": { - "0": { - "subtype": { - "overrideType": "[string, string]" - } - } - }, - "additionalTypes": ["Headers"], - "name": "HeadersInit" - }, - { - "overrideType": "number | string | Date | BufferSource | IDBValidKey[]", - "name": "IDBValidKey" - }, - { - "type": { - "0": { - "type": "Algorithm" - } - }, - "name": "AlgorithmIdentifier" - }, - { - "name": "MutationRecordType", - "overrideType": "\"attributes\" | \"characterData\" | \"childList\"" - }, - { - "name": "WindowProxy", - "type": "Window" - }, - { - "name": "ValueType", - "legacyNamespace": "WebAssembly", - "overrideType": "keyof ValueTypeMap" - }, - { - "name": "ExportValue", - "legacyNamespace": "WebAssembly", - "overrideType": "Function | Global | Memory | Table" - }, - { - "name": "Exports", - "legacyNamespace": "WebAssembly", - "type": "record", - "subtype": [ - { - "type": "DOMString" - }, - { - "type": "ExportValue" - } - ] - }, - { - "name": "ImportValue", - "legacyNamespace": "WebAssembly", - "overrideType": "ExportValue | number" - }, - { - "name": "ModuleImports", - "legacyNamespace": "WebAssembly", - "type": "record", - "subtype": [ - { - "type": "DOMString" - }, - { - "type": "ImportValue" - } - ] - }, - { - "name": "Imports", - "legacyNamespace": "WebAssembly", - "type": "record", - "subtype": [ - { - "type": "DOMString" - }, - { - "type": "ModuleImports" - } - ] - }, - { - "name": "ReadableStreamReadResult", - "typeParameters": [ - { - "name": "T" - } - ], - "type": [ - { - "type": "ReadableStreamReadValueResult" - }, - { - "type": "ReadableStreamReadDoneResult" - } - ], - "overrideType": "ReadableStreamReadValueResult | ReadableStreamReadDoneResult" - }, - { - "name": "EventListenerOrEventListenerObject", - "overrideType": "EventListener | EventListenerObject" - }, - { - "name": "OptionalPrefixToken", - "typeParameters": [ - { - "name": "T extends string" - } - ], - "overrideType": "`${T} ` | \"\"" - }, - { - "name": "OptionalPostfixToken", - "typeParameters": [ - { - "name": "T extends string" - } - ], - "overrideType": "` ${T}` | \"\"" - }, - { - "name": "AutoFillSection", - // Note: this will also eagerly match any invalid string - // after section- instead of stopping at the first whitespace. - // It should be something like /section-\S/ if it were supported. - "overrideType": "`section-${string}`" - }, - { - "name": "AutoFillField", - "overrideType": "AutoFillNormalField | `${OptionalPrefixToken}${AutoFillContactField}`" - }, - { - // See the full list of possible autofill values for the `autocomplete` attribute: - // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#determine-a-field's-category - // Full spec at https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill. - "name": "AutoFill", - "overrideType": "AutoFillBase | `${OptionalPrefixToken}${OptionalPrefixToken}${AutoFillField}${OptionalPostfixToken}`" - } - ] - } -} \ No newline at end of file + "bday-day", + "bday-month", + "bday-year" + ] + }, + "AutoFillContactKind": { + "name": "AutoFillContactKind", + "value": [ + "home", + "work", + "mobile" + ] + }, + "AutoFillContactField": { + "name": "AutoFillContactField", + "value": [ + "tel", + "tel-country-code", + "tel-national", + "tel-area-code", + "tel-local", + "tel-local-prefix", + "tel-local-suffix", + "tel-extension", + "email" + ] + }, + "AutoFillCredentialField": { + "name": "AutoFillCredentialField", + "value": [ + "webauthn" + ] + } + } + }, + "interfaces": { + "interface": { + // ImportMeta is not a true DOM interface, but we are forced to declare it as one in order to emit method definitions. + // We cannot define methods as dictionary properties with function types, + // as this would cause conflicts with ImportMeta method overrides in places like @types/node. + "ImportMeta": { + "name": "ImportMeta", + "exposed": "Window Worker", + "noInterfaceObject": true, + "properties": { + "property": { + "url": { + "name": "url", + "type": "DOMString" + } + } + }, + "methods": { + "method": { + "resolve": { + "name": "resolve", + "signature": [ + { + "param": [ + { + "name": "specifier", + "type": "DOMString" + } + ], + "type": "DOMString" + } + ] + } + } + } + }, + "AudioWorkletProcessorImpl": { + "name": "AudioWorkletProcessorImpl", + "extends": "AudioWorkletProcessor", + "methods": { + "method": { + "process": { + "name": "process", + "overrideSignatures": [ + "process(inputs: Float32Array[][], outputs: Float32Array[][], parameters: Record): boolean" + ] + } + } + }, + "exposed": "AudioWorklet", + "noInterfaceObject": true + }, + "BroadcastChannel": { + "events": { + "event": [ + { + "name": "message", + "type": "MessageEvent" + }, + { + "name": "messageerror", + "type": "MessageEvent" + } + ] + } + }, + "CompileError": { + "name": "CompileError", + "extends": "Error", + "legacyNamespace": "WebAssembly", + "constructor": { + "overrideSignatures": [ + "new(message?: string): CompileError", + "(message?: string): CompileError" + ] + } + }, + "DeviceMotionEventAcceleration": { + "noInterfaceObject": true + }, + "DeviceMotionEventRotationRate": { + "noInterfaceObject": true + }, + "HTMLImageElement": { + "name": "HTMLImageElement", + "properties": { + "property": { + "decoding": { + "name": "decoding", + "overrideType": "\"async\" | \"sync\" | \"auto\"" + }, + "loading": { + "overrideType": "\"eager\" | \"lazy\"" + } + } + } + }, + "HTMLTableDataCellElement": { + "name": "HTMLTableDataCellElement", + "extends": "HTMLTableCellElement", + "noInterfaceObject": true, + "deprecated": "prefer HTMLTableCellElement", + "exposed": "Window" + }, + "HTMLTableHeaderCellElement": { + "name": "HTMLTableHeaderCellElement", + "extends": "HTMLTableCellElement", + "noInterfaceObject": true, + "deprecated": "prefer HTMLTableCellElement", + "exposed": "Window" + }, + "HTMLDocument": { + "name": "HTMLDocument", + "extends": "Document", + "deprecated": "use Document", + "exposed": "Window" + }, + "HTMLMediaElement": { + "events": { + "event": [ + { + "name": "encrypted", + "type": "MediaEncryptedEvent" + } + ] + } + }, + "CSSStyleDeclaration": { + "name": "CSSStyleDeclaration", + "properties": { + "property": { + "imageOrientation": { + "deprecated": true + }, + "wordWrap": { + "deprecated": true + } + } + } + }, + "Window": { + "name": "Window", + "methods": { + "method": { + "captureEvents": { + "deprecated": true + } + } + }, + "overrideIndexSignatures": [ + "[index: number]: Window" + ], + "events": { + "event": [ + { + "name": "devicemotion", + "type": "DeviceMotionEvent" + }, + { + "name": "deviceorientation", + "type": "DeviceOrientationEvent" + }, + { + "name": "deviceorientationabsolute", + "type": "DeviceOrientationEvent" + }, + { + "name": "gamepadconnected", + "type": "GamepadEvent" + }, + { + "name": "gamepaddisconnected", + "type": "GamepadEvent" + }, + { + "name": "DOMContentLoaded", + "type": "Event" + } + ] + } + }, + "URLSearchParams": { + "name": "URLSearchParams", + "constructor": { + "signature": { + "0": { + "param": [ + { + "name": "init", + "additionalTypes": ["URLSearchParams"] + } + ] + } + } + } + }, + "NodeListOf": { + "name": "NodeListOf", + "typeParameters": [ + { + "name": "TNode", + "extends": "Node" + } + ], + "exposed": "Window", + "extends": "NodeList", + "methods": { + "method": { + "item": { + "name": "item", + "overrideSignatures": [ + "item(index: number): TNode" + ] + } + } + }, + "noInterfaceObject": true, + "overrideIndexSignatures": [ + "[index: number]: TNode" + ], + "iterator": { + "kind": "iterable", + "type": [ + { + "overrideType": "TNode" + } + ] + } + }, + "HTMLCollectionOf": { + "name": "HTMLCollectionOf", + "typeParameters": [ + { + "name": "T", + "extends": "Element" + } + ], + "exposed": "Window", + "extends": "HTMLCollection", + "methods": { + "method": { + "item": { + "getter": true, + "signature": [ + { + "nullable": true, + "overrideType": "T", + "param": [ + { + "name": "index", + "type": "unsigned long" + } + ] + } + ], + "specs": "html5", + "name": "item" + }, + "namedItem": { + "name": "namedItem", + "overrideSignatures": [ + "namedItem(name: string): T | null" + ] + } + } + }, + "noInterfaceObject": true + }, + "Element": { + "name": "Element", + "methods": { + "method": { + "getElementsByClassName": { + "name": "getElementsByClassName", + "signature": { + "0": { + "overrideType": "HTMLCollectionOf" + } + } + }, + "closest": { + "additionalSignatures": [ + "closest(selector: K): HTMLElementTagNameMap[K] | null", + "closest(selector: K): SVGElementTagNameMap[K] | null", + "closest(selector: K): MathMLElementTagNameMap[K] | null" + ], + "signature": { + "0": { + "typeParameters": [ + { + "name": "E", + "extends": "Element", + "default": "Element" + } + ], + "overrideType": "E" + } + } + }, + "insertAdjacentElement": { + "signature": { + "0": { + "param": [ + { + "name": "where", + "type": "InsertPosition" + } + ] + } + } + }, + "insertAdjacentHTML": { + "signature": { + "0": { + "param": [ + { + "name": "position", + "type": "InsertPosition" + } + ] + } + } + }, + "insertAdjacentText": { + "signature": { + "0": { + "param": [ + { + "name": "where", + "type": "InsertPosition" + } + ] + } + } + } + } + }, + "properties": { + "property": { + "ownerDocument": { + "name": "ownerDocument", + "readonly": true, + "type": "Document" + } + } + } + }, + // This is used in many DT libraries, via ckeditor + "ClientRect": { + "name": "ClientRect", + "exposed": "Window", + "deprecated": true, + "extends": "DOMRect", + "noInterfaceObject": true + }, + /* + Keeping EventListener and EventListenerObject isn't the most elegant way to handle + the event listeners, but we need to keep the EventListener as an extendable interface + for libraries like angular. + */ + "EventListener": { + "name": "EventListener", + "noInterfaceObject": true, + "methods": { + "method": { + // This is a hack to add a call signature, but I think it's reasonable + // as it means we don't have to add a call signatures section to the + // emitter for this one case. + "callable": { + "overrideSignatures": [ + "(evt: Event): void" + ] + } + } + } + }, + "EventListenerObject": { + "name": "EventListenerObject", + "noInterfaceObject": true, + "methods": { + "method": { + "handleEvent": { + "overrideSignatures": [ + "handleEvent(object: Event): void" + ] + } + } + } + }, + "Document": { + "methods": { + "method": { + "createElementNS": { + "name": "createElementNS", + "additionalSignatures": [ + "createElementNS(namespaceURI: \"http://www.w3.org/1999/xhtml\", qualifiedName: string): HTMLElement", + "createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: K): SVGElementTagNameMap[K]", + "createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: string): SVGElement", + "createElementNS(namespaceURI: \"http://www.w3.org/1998/Math/MathML\", qualifiedName: K): MathMLElementTagNameMap[K]", + "createElementNS(namespaceURI: \"http://www.w3.org/1998/Math/MathML\", qualifiedName: string): MathMLElement", + "createElementNS(namespaceURI: string | null, qualifiedName: string, options?: ElementCreationOptions): Element" + ] + }, + "caretRangeFromPoint": { + "name": "caretRangeFromPoint", + "deprecated": true, + "overrideSignatures": [ + "caretRangeFromPoint(x: number, y: number): Range | null" + ] + } + } + }, + "properties": { + "property": { + "ownerDocument": { + "name": "ownerDocument", + "readonly": true, + "overrideType": "null" + } + } + }, + "events": { + "event": [ + { + "name": "DOMContentLoaded", + "type": "Event" + } + ] + } + }, + // This is used in the React d.ts files, and not including + // it would force an update for anyone using React. + "StyleMedia": { + "name": "StyleMedia", + "exposed": "Window", + "noInterfaceObject": true, + "deprecated": true, + "properties": { + "property": { + "type": { + "name": "type", + "type": "DOMString" + } + } + }, + "methods": { + "method": { + "matchMedium": { + "name": "matchMedium", + "overrideSignatures": [ + "matchMedium(mediaquery: string): boolean" + ] + } + } + } + }, + "Navigator": { + "name": "Navigator", + "properties": { + "property": { + "doNotTrack": { + "name": "doNotTrack", + "readonly": true, + "nullable": true, + "type": "DOMString" + } + } + } + }, + "HTMLIFrameElement": { + "name": "HTMLIFrameElement", + "properties": { + "property": { + "referrerPolicy": { + "type": "ReferrerPolicy" + }, + "loading": { + "name": "loading", + "overrideType": "\"eager\" | \"lazy\"" + } + } + } + }, + "IDBDatabase": { + "name": "IDBDatabase", + "events": { + "event": [ + { + "name": "versionchange", + "type": "IDBVersionChangeEvent" + } + ] + } + }, + "IDBOpenDBRequest": { + "name": "IDBOpenDBRequest", + "extends": "IDBRequest", + "events": { + "event": [ + { + "name": "upgradeneeded", + "type": "IDBVersionChangeEvent" + }, + { + "name": "blocked", + "type": "IDBVersionChangeEvent" + } + ] + } + }, + "UIEvent": { + "properties": { + "property": { + "which": { + "deprecated": true + } + } + } + }, + "SpeechSynthesisUtterance": { + "events": { + "event": [ + { + "name": "start", + "type": "SpeechSynthesisEvent" + }, + { + "name": "end", + "type": "SpeechSynthesisEvent" + }, + { + "name": "error", + "type": "SpeechSynthesisErrorEvent" + }, + { + "name": "pause", + "type": "SpeechSynthesisEvent" + }, + { + "name": "resume", + "type": "SpeechSynthesisEvent" + }, + { + "name": "mark", + "type": "SpeechSynthesisEvent" + }, + { + "name": "boundary", + "type": "SpeechSynthesisEvent" + } + ] + } + }, + "TextTrackList": { + "events": { + "event": [ + { + "name": "addtrack", + "type": "TrackEvent" + }, + { + "name": "removetrack", + "type": "TrackEvent" + } + ] + } + }, + "DOMMatrixReadOnly": { + "methods": { + "method": { + "scaleNonUniform": { + "deprecated": true + } + } + } + }, + "EventSource": { + "events": { + "event": [ + { + "name": "message", + "type": "MessageEvent" + } + ] + } + }, + "HTMLBodyElement": { + "properties": { + "property": { + "onorientationchange": { + "deprecated": true + } + } + } + }, + "HTMLInputElement": { + "properties": { + "property": { + "labels": { + "overrideType": "NodeListOf" + } + } + } + }, + "HTMLLinkElement": { + "properties": { + "property": { + "charset": { + "deprecated": true + }, + "rev": { + "deprecated": true + }, + "target": { + "deprecated": true + } + } + } + }, + "KHR_parallel_shader_compile": { + "overrideExposed": "Window Worker" + }, + "OVR_multiview2": { + "overrideExposed": "Window Worker" + }, + // The spec removed `timestamp` but browsers still have it. + // https://github.com/w3c/webrtc-encoded-transform/pull/204 + "RTCEncodedAudioFrame": { + "properties": { + "property": { + "timestamp": { + "mdnUrl": "https://developer.mozilla.org/docs/Web/API/RTCEncodedAudioFrame/timestamp", + "name": "timestamp", + "type": "long long", + "readonly": true + } + } + } + }, + "RTCEncodedVideoFrame": { + "properties": { + "property": { + "timestamp": { + "mdnUrl": "https://developer.mozilla.org/docs/Web/API/RTCEncodedVideoFrame/timestamp", + "name": "timestamp", + "type": "long long", + "readonly": true + } + } + } + }, + "RTCDTMFSender": { + "events": { + "event": [ + { + "name": "tonechange", + "type": "RTCDTMFToneChangeEvent" + } + ] + } + }, + "RuntimeError": { + "name": "RuntimeError", + "extends": "Error", + "legacyNamespace": "WebAssembly", + "constructor": { + "overrideSignatures": [ + "new(message?: string): RuntimeError", + "(message?: string): RuntimeError" + ] + } + }, + "SVGStyleElement": { + "properties": { + "property": { + "disabled": { + "name": "disabled", + "type": "boolean" + } + } + } + }, + "LinkError": { + "name": "LinkError", + "extends": "Error", + "legacyNamespace": "WebAssembly", + "constructor": { + "overrideSignatures": [ + "new(message?: string): LinkError", + "(message?: string): LinkError" + ] + } + }, + "MediaRecorder": { + "events": { + "event": [ + { + "name": "dataavailable", + "type": "BlobEvent" + } + ] + } + }, + "MediaStream": { + "events": { + "event": [ + { + "name": "addtrack", + "type": "MediaStreamTrackEvent" + }, + { + "name": "removetrack", + "type": "MediaStreamTrackEvent" + } + ] + } + }, + "ProgressEvent": { + "typeParameters": [ + { + "name": "T", + "extends": "EventTarget", + "default": "EventTarget" + } + ], + "properties": { + "property": { + "target": { + "name": "target", + "readonly": true, + "nullable": true, + "overrideType": "T" + } + } + } + }, + "SharedWorkerGlobalScope": { + "events": { + "event": [ + { + "name": "connect", + "type": "MessageEvent" + } + ] + } + }, + "Attr": { + "name": "Attr", + "properties": { + "property": { + "ownerDocument": { + "name": "ownerDocument", + "readonly": true, + "type": "Document" + } + } + } + }, + "CharacterData": { + "name": "CharacterData", + "properties": { + "property": { + "ownerDocument": { + "name": "ownerDocument", + "readonly": true, + "type": "Document" + } + } + } + }, + "DocumentType": { + "name": "DocumentType", + "properties": { + "property": { + "ownerDocument": { + "name": "ownerDocument", + "readonly": true, + "type": "Document" + } + } + } + }, + "ProcessingInstruction": { + "name": "ProcessingInstruction", + "properties": { + "property": { + "ownerDocument": { + "name": "ownerDocument", + "readonly": true, + "type": "Document" + } + } + } + }, + "WebSocket": { + "events": { + "event": [ + { + "name": "close", + "type": "CloseEvent" + } + ] + } + }, + "WorkerGlobalScope": { + "events": { + "event": [ + { + "name": "rejectionhandled", + "type": "PromiseRejectionEvent" + }, + { + "name": "unhandledrejection", + "type": "PromiseRejectionEvent" + } + ] + } + }, + "FileSystemFileHandle": { + "properties": { + "property": { + "kind": { + "name": "kind", + "readonly": true, + "overrideType": "\"file\"" + } + } + } + }, + "FileSystemDirectoryHandle": { + "properties": { + "property": { + "kind": { + "name": "kind", + "readonly": true, + "overrideType": "\"directory\"" + } + } + } + } + } + }, + "dictionaries": { + "dictionary": { + "KeyboardEventInit": { + "members": { + "member": { + "charCode": { + "deprecated": true + }, + "keyCode": { + "deprecated": true + } + } + } + }, + "MemoryDescriptor": { + "members": { + "member": { + "shared": { + "name": "shared", + "type": "boolean" + } + } + } + }, + "ReadableStreamReadDoneResult": { + "name": "ReadableStreamReadDoneResult", + "typeParameters": [ + { + "name": "T" + } + ], + "members": { + "member": { + "done": { + "name": "done", + "overrideType": "true", + "required": true + }, + "value": { + "name": "value", + "overrideType": "T | undefined", + "required": true + } + } + } + }, + "ReadableStreamReadValueResult": { + "name": "ReadableStreamReadValueResult", + "typeParameters": [ + { + "name": "T" + } + ], + "members": { + "member": { + "done": { + "name": "done", + "overrideType": "false", + "required": true + }, + "value": { + "name": "value", + "overrideType": "T", + "required": true + } + } + } + }, + "UnderlyingByteSource": { + "name": "UnderlyingByteSource", + "members": { + "member": { + "type": { + "name": "type", + "required": true, + "overrideType": "\"bytes\"" + }, + "autoAllocateChunkSize": { + "name": "autoAllocateChunkSize", + "type": "unsigned long long" + }, + "start": { + "name": "start", + "overrideType": "(controller: ReadableByteStreamController) => any" + }, + "pull": { + "name": "pull", + "overrideType": "(controller: ReadableByteStreamController) => void | PromiseLike" + }, + "cancel": { + "name": "cancel", + "type": "UnderlyingSourceCancelCallback" + } + } + } + }, + "UnderlyingDefaultSource": { + "name": "UnderlyingDefaultSource", + "typeParameters": [ + { + "name": "R", + "default": "any" + } + ], + "members": { + "member": { + "type": { + "name": "type", + "type": "undefined" + }, + "start": { + "name": "start", + "overrideType": "(controller: ReadableStreamDefaultController) => any" + }, + "pull": { + "name": "pull", + "overrideType": "(controller: ReadableStreamDefaultController) => void | PromiseLike" + }, + "cancel": { + "name": "cancel", + "type": "UnderlyingSourceCancelCallback" + } + } + } + }, + "ValueTypeMap": { + "name": "ValueTypeMap", + "legacyNamespace": "WebAssembly", + "exposed":"Window Worker Worklet", + "members": { + "member": { + "anyfunc": { + "name": "anyfunc", + "overrideType": "Function", + "required": 1 + }, + "externref": { + "name": "externref", + "overrideType": "any", + "required": 1 + }, + "f32": { + "name": "f32", + "overrideType": "number", + "required": 1 + }, + "f64": { + "name": "f64", + "overrideType": "number", + "required": 1 + }, + "i32": { + "name": "i32", + "overrideType": "number", + "required": 1 + }, + "i64": { + "name": "i64", + "overrideType": "bigint", + "required": 1 + }, + "v128": { + "name": "v128", + "overrideType": "never", + "required": 1 + } + } + } + } + } + }, + "typedefs": { + "typedef": [ + { + "type": { + "0": { + "subtype": { + "overrideType": "[string, string]" + } + } + }, + "additionalTypes": ["Headers"], + "name": "HeadersInit" + }, + { + "overrideType": "number | string | Date | BufferSource | IDBValidKey[]", + "name": "IDBValidKey" + }, + { + "type": { + "0": { + "type": "Algorithm" + } + }, + "name": "AlgorithmIdentifier" + }, + { + "name": "MutationRecordType", + "overrideType": "\"attributes\" | \"characterData\" | \"childList\"" + }, + { + "name": "WindowProxy", + "type": "Window" + }, + { + "name": "ValueType", + "legacyNamespace": "WebAssembly", + "overrideType": "keyof ValueTypeMap" + }, + { + "name": "ExportValue", + "legacyNamespace": "WebAssembly", + "overrideType": "Function | Global | Memory | Table" + }, + { + "name": "Exports", + "legacyNamespace": "WebAssembly", + "type": "record", + "subtype": [ + { + "type": "DOMString" + }, + { + "type": "ExportValue" + } + ] + }, + { + "name": "ImportValue", + "legacyNamespace": "WebAssembly", + "overrideType": "ExportValue | number" + }, + { + "name": "ModuleImports", + "legacyNamespace": "WebAssembly", + "type": "record", + "subtype": [ + { + "type": "DOMString" + }, + { + "type": "ImportValue" + } + ] + }, + { + "name": "Imports", + "legacyNamespace": "WebAssembly", + "type": "record", + "subtype": [ + { + "type": "DOMString" + }, + { + "type": "ModuleImports" + } + ] + }, + { + "name": "ReadableStreamReadResult", + "typeParameters": [ + { + "name": "T" + } + ], + "type": [ + { + "type": "ReadableStreamReadValueResult" + }, + { + "type": "ReadableStreamReadDoneResult" + } + ], + "overrideType": "ReadableStreamReadValueResult | ReadableStreamReadDoneResult" + }, + { + "name": "EventListenerOrEventListenerObject", + "overrideType": "EventListener | EventListenerObject" + }, + { + "name": "OptionalPrefixToken", + "typeParameters": [ + { + "name": "T extends string" + } + ], + "overrideType": "`${T} ` | \"\"" + }, + { + "name": "OptionalPostfixToken", + "typeParameters": [ + { + "name": "T extends string" + } + ], + "overrideType": "` ${T}` | \"\"" + }, + { + "name": "AutoFillSection", + // Note: this will also eagerly match any invalid string + // after section- instead of stopping at the first whitespace. + // It should be something like /section-\S/ if it were supported. + "overrideType": "`section-${string}`" + }, + { + "name": "AutoFillField", + "overrideType": "AutoFillNormalField | `${OptionalPrefixToken}${AutoFillContactField}`" + }, + { + // See the full list of possible autofill values for the `autocomplete` attribute: + // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#determine-a-field's-category + // Full spec at https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill. + "name": "AutoFill", + "overrideType": "AutoFillBase | `${OptionalPrefixToken}${OptionalPrefixToken}${AutoFillField}${OptionalPostfixToken}`" + } + ] + } +} From 110d1c54e264d6edcf1fd5cdd0b5460991470705 Mon Sep 17 00:00:00 2001 From: Bashamega Date: Sat, 12 Apr 2025 08:59:14 +0200 Subject: [PATCH 09/10] Refactor JSONC file validation: remove sorter and implement verification in a new module --- src/build.ts | 2 -- src/build/sorter.ts | 67 ------------------------------------ src/verifyFiles.ts | 82 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 82 insertions(+), 69 deletions(-) delete mode 100644 src/build/sorter.ts create mode 100644 src/verifyFiles.ts diff --git a/src/build.ts b/src/build.ts index 105d5a343..f48de928c 100644 --- a/src/build.ts +++ b/src/build.ts @@ -13,7 +13,6 @@ import { getInterfaceElementMergeData } from "./build/webref/elements.js"; import { getInterfaceToEventMap } from "./build/webref/events.js"; import { getWebidls } from "./build/webref/idl.js"; import jsonc from "jsonc-parser"; -import { sortFiles } from "./build/sorter.js"; function mergeNamesakes(filtered: Browser.WebIdl) { const targets = [ @@ -397,4 +396,3 @@ async function emitDom() { } await emitDom(); -sortFiles(); diff --git a/src/build/sorter.ts b/src/build/sorter.ts deleted file mode 100644 index 1bb07d063..000000000 --- a/src/build/sorter.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { readFileSync } from "fs"; -import { parse, ParseError, visit } from "jsonc-parser"; -import { URL } from "url"; - -// Recursively sort object keys -function sortObjectKeys(obj: T): T { - if (obj && typeof obj === "object" && !Array.isArray(obj)) { - const sorted: Record = {}; - for (const key of Object.keys(obj).sort()) { - sorted[key] = sortObjectKeys((obj as any)[key]); - } - return sorted as T; - } - return obj; -} - -// Check if the content has trailing commas -function hasTrailingCommas(content: string): boolean { - let foundTrailingComma = false; - - visit(content, { - onObjectEnd: (offset) => { - const lastChar = content[offset - 1]; - if (lastChar === ",") { - foundTrailingComma = true; - } - }, - onArrayEnd: (offset) => { - const lastChar = content[offset - 1]; - if (lastChar === ",") { - foundTrailingComma = true; - } - }, - }); - - return foundTrailingComma; -} - -export function sortFiles(): 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(`❌ Syntax error(s) found in ${name}.jsonc:`); - } - - if (hasTrailingCommas(content)) { - throw new Error(`❌ Trailing comma detected in ${name}.jsonc`); - } - - const sorted = sortObjectKeys(parsed); - const originalStr = JSON.stringify(parsed); - const sortedStr = JSON.stringify(sorted); - - if (originalStr !== sortedStr) { - throw new Error(`❌ Keys are not sorted in ${name}.jsonc`); - } - - console.log(`✅ ${name}.jsonc is valid, sorted, and clean.`); - } -} 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(); From 1c9cb64c5b1a22f99846366bffc5521b7db76fbf Mon Sep 17 00:00:00 2001 From: Bashamega Date: Sat, 12 Apr 2025 09:00:48 +0200 Subject: [PATCH 10/10] chore: verify files on the build commands --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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",