diff --git a/.azure-pipelines/publish-nightly.yml b/.azure-pipelines/publish-nightly.yml
index c90eec01..1569a2ef 100644
--- a/.azure-pipelines/publish-nightly.yml
+++ b/.azure-pipelines/publish-nightly.yml
@@ -62,6 +62,9 @@ extends:
- script: npm ci
displayName: Install NPM dependencies
+ - script: npx playwright install --with-deps
+ displayName: Install Playwright Dependencies
+
- script: yarn ts-node ./scripts/ci/build-monaco-editor-core-pkg nightly
env:
VSCODE_REF: ${{ parameters.vscodeRef }}
diff --git a/.azure-pipelines/publish-stable.yml b/.azure-pipelines/publish-stable.yml
index 270e534f..1d4290ed 100644
--- a/.azure-pipelines/publish-stable.yml
+++ b/.azure-pipelines/publish-stable.yml
@@ -50,6 +50,9 @@ extends:
- script: npm ci
displayName: Install NPM dependencies
+ - script: npx playwright install --with-deps
+ displayName: Install Playwright Dependencies
+
- script: yarn ts-node ./scripts/ci/build-monaco-editor-core-pkg stable
displayName: Setup, Build & Test monaco-editor-core
diff --git a/.github/commands.json b/.github/commands.json
new file mode 100644
index 00000000..23c91d03
--- /dev/null
+++ b/.github/commands.json
@@ -0,0 +1,150 @@
+[
+ {
+ "type": "comment",
+ "name": "question",
+ "allowUsers": [],
+ "action": "updateLabels",
+ "addLabel": "*question"
+ },
+ {
+ "type": "label",
+ "name": "*question",
+ "action": "close",
+ "reason": "not_planned",
+ "comment": "We closed this issue because it is a question about using Monaco Editor rather than an issue or feature request. Please search for help on [StackOverflow](https://stackoverflow.com/questions/tagged/monaco-editor), where the community has already answered many similar questions. See also our [issue reporting guidelines](https://github.com/microsoft/monaco-editor#contributing).\n\nHappy Coding!"
+ },
+ {
+ "type": "label",
+ "name": "*out-of-scope",
+ "action": "close",
+ "reason": "not_planned",
+ "comment": "We closed this issue because we don't plan to address it in the foreseeable future. If you disagree and feel that this issue is crucial: we are happy to listen and to reconsider.\n\nThanks for your understanding, and happy coding!"
+ },
+ {
+ "type": "label",
+ "name": "wont-fix",
+ "action": "close",
+ "reason": "not_planned",
+ "comment": "We closed this issue because we don't plan to address it.\n\nThanks for your understanding, and happy coding!"
+ },
+ {
+ "type": "comment",
+ "name": "duplicate",
+ "allowUsers": [],
+ "action": "updateLabels",
+ "addLabel": "*duplicate"
+ },
+ {
+ "type": "label",
+ "name": "*duplicate",
+ "action": "close",
+ "reason": "not_planned",
+ "comment": "Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for [existing issues](https://github.com/microsoft/monaco-editor/issues).\n\nHappy Coding!"
+ },
+ {
+ "type": "comment",
+ "name": "verified",
+ "allowUsers": [
+ "@author"
+ ],
+ "action": "updateLabels",
+ "addLabel": "verified",
+ "removeLabel": "author-verification-requested",
+ "requireLabel": "author-verification-requested",
+ "disallowLabel": "unreleased"
+ },
+ {
+ "type": "comment",
+ "name": "confirm",
+ "allowUsers": [],
+ "action": "updateLabels",
+ "addLabel": "confirmed",
+ "removeLabel": "confirmation-pending"
+ },
+ {
+ "type": "comment",
+ "name": "confirmationPending",
+ "allowUsers": [],
+ "action": "updateLabels",
+ "addLabel": "confirmation-pending",
+ "removeLabel": "confirmed"
+ },
+ {
+ "type": "comment",
+ "name": "needsMoreInfo",
+ "allowUsers": [],
+ "action": "updateLabels",
+ "addLabel": "~info-needed"
+ },
+ {
+ "type": "comment",
+ "name": "closedWith",
+ "allowUsers": [],
+ "action": "close",
+ "reason": "completed",
+ "addLabel": "unreleased"
+ },
+ {
+ "type": "comment",
+ "name": "spam",
+ "allowUsers": [],
+ "action": "close",
+ "reason": "not_planned",
+ "addLabel": "invalid"
+ },
+ {
+ "__comment__": "Allows folks on the team to label issues by commenting: `\\label My-Label` ",
+ "type": "comment",
+ "name": "label",
+ "allowUsers": []
+ },
+ {
+ "type": "label",
+ "name": "~verification-steps-needed",
+ "action": "updateLabels",
+ "addLabel": "verification-steps-needed",
+ "removeLabel": "~verification-steps-needed",
+ "comment": "Friendly ping! Looks like this issue requires some further steps to be verified. Please provide us with the steps necessary to verify this issue."
+ },
+ {
+ "type": "label",
+ "name": "~info-needed",
+ "action": "updateLabels",
+ "addLabel": "info-needed",
+ "removeLabel": "~info-needed",
+ "comment": "Thanks for creating this issue! We figured it's missing some basic information or doesn't follow our issue reporting guidelines. Please take the time to review these and update the issue.\n\nHappy Coding!"
+ },
+ {
+ "type": "label",
+ "name": "~version-info-needed",
+ "action": "updateLabels",
+ "addLabel": "info-needed",
+ "removeLabel": "~version-info-needed",
+ "comment": "Thanks for creating this issue! We figured it's missing some basic information, such as a version number. Please take the time to update the issue with the Monaco Editor version you're using.\n\nHappy Coding!"
+ },
+ {
+ "type": "label",
+ "name": "~confirmation-needed",
+ "action": "updateLabels",
+ "addLabel": "info-needed",
+ "removeLabel": "~confirmation-needed",
+ "comment": "Please try to reproduce this issue with the latest version of Monaco Editor. If the issue persists, please update the issue with confirmation.\n\nHappy Coding!"
+ },
+ {
+ "type": "comment",
+ "name": "gifPlease",
+ "allowUsers": [],
+ "action": "comment",
+ "addLabel": "info-needed",
+ "comment": "Thanks for reporting this issue! Unfortunately, it's hard for us to understand what issue you're seeing. Please help us out by providing a screen recording showing exactly what isn't working as expected. While we can work with most standard formats, `.gif` files are preferred as they are displayed inline on GitHub. You may find https://gifcap.dev helpful as a browser-based gif recording tool.\n\nHappy coding!"
+ },
+ {
+ "type": "comment",
+ "name": "upstream",
+ "allowUsers": [],
+ "action": "close",
+ "reason": "not_planned",
+ "addLabel": "upstream",
+ "comment": "This issue is caused by an upstream dependency (VS Code editor core). The fix needs to happen in the [VS Code repository](https://github.com/microsoft/vscode). Please check if there's already an issue filed there, or create one if not.\n\nHappy Coding!"
+ }
+]
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 6dd7dd28..1abda5f1 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -83,14 +83,18 @@ jobs:
- name: Run smoke test
run: npm run smoketest
- # - name: Install website node modules
- # working-directory: website
- # run: yarn install --frozen-lockfile
+ - name: Install website node modules
+ working-directory: website
+ run: npm ci
- # - name: Build website
- # working-directory: website
- # run: yarn run build
+ - name: Install most recent version of monaco-editor
+ working-directory: website
+ run: npm install monaco-editor
- # - name: Test website
- # working-directory: website
- # run: yarn test
+ - name: Build website
+ working-directory: website
+ run: npm run build
+
+ - name: Test website
+ working-directory: website
+ run: npm run test
diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml
index 40f0fc16..c6446d5c 100644
--- a/.github/workflows/website.yml
+++ b/.github/workflows/website.yml
@@ -39,8 +39,10 @@ jobs:
- name: execute `npm ci` (1)
if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }}
run: npm ci
+
+ # For TypeDoc
- name: Build
- run: npm run build-monaco-editor
+ run: npm run build
- name: Install website node modules
working-directory: website
@@ -54,6 +56,10 @@ jobs:
working-directory: website
run: npm run build
+ - name: Test website
+ working-directory: website
+ run: npm run test
+
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Upload artifact
diff --git a/.nvmrc b/.nvmrc
index 91d5f6ff..5767036a 100644
--- a/.nvmrc
+++ b/.nvmrc
@@ -1 +1 @@
-22.18.0
+22.21.1
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3bfd3258..1e0175b1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,20 @@
# Monaco Editor Changelog
+## [0.55.1]
+
+- Fixes missing language exports (monaco.json/typescript/...) due to wrong "types" path - [#5123](https://github.com/microsoft/monaco-editor/issues/5123)
+
+## [0.55.0]
+
+### Breaking Changes
+- Moves nested namespaces (`languages.css`, `languages.html`, `languages.json`, `languages.typescript`) to top level namespaces (`css`, `html`, `json`, `typescript`) to simplify the build process and align with typescript recommendations.
+
+### New Features
+- Adds native LSP support (see new `lsp` namespace).
+
+### Bug Fixes
+- Updates dompurify to 3.2.7
+
## [0.54.0]
- Adds option `editor.mouseMiddleClickAction`
diff --git a/README.md b/README.md
index a5403aba..e17867b5 100644
--- a/README.md
+++ b/README.md
@@ -28,6 +28,15 @@ You will get:
:warning: The monaco editor also ships an `AMD` build for backwards-compatibility reasons, but the `AMD` support is deprecated and will be removed in future versions.
+## Localization
+
+To load the editor in a specific language, make sure that the corresponding nls script file is loaded before the main monaco editor script. For example, to load the editor in German, include the following script tag:
+```html
+
+```
+
+Check the sources for available languages.
+
## Concepts
Monaco editor is best known for being the text editor that powers VS Code. However, it's a bit more nuanced. Some basic understanding about the underlying concepts is needed to use Monaco editor effectively.
diff --git a/build/amd/rollup-types.config.mjs b/build/amd/rollup-types.config.mjs
index 0a591923..84fb946a 100644
--- a/build/amd/rollup-types.config.mjs
+++ b/build/amd/rollup-types.config.mjs
@@ -9,45 +9,22 @@ import nodeResolve from '@rollup/plugin-node-resolve';
import { join } from 'path';
import { defineConfig } from 'rollup';
import { dts } from 'rollup-plugin-dts';
-
-const root = join(import.meta.dirname, '../../');
-const outDir = join(import.meta.dirname, './out');
-
-/**
- * @param {string} filePath
- * @param {string} newExt
- */
-function changeExt(filePath, newExt) {
- const idx = filePath.lastIndexOf('.');
- if (idx === -1) {
- return filePath + newExt;
- } else {
- return filePath.substring(0, idx) + newExt;
- }
-}
-
-const mappedPaths = {
- [join(root, 'node_modules/monaco-editor-core/esm/')]: '.',
- [join(root, 'node_modules/')]: 'external/',
- [join(root, 'src/')]: 'vs/'
-};
+import { dtsDeprecationWarning, mapModuleId } from '../shared.mjs';
export default defineConfig({
input: {
types: join(import.meta.dirname, './src/types.ts')
},
output: {
- dir: outDir,
+ dir: join(import.meta.dirname, './out'),
format: 'es',
preserveModules: false,
entryFileNames: function (chunkInfo) {
const moduleId = chunkInfo.facadeModuleId;
if (moduleId) {
- for (const [key, val] of Object.entries(mappedPaths)) {
- if (moduleId.startsWith(key)) {
- const relativePath = moduleId.substring(key.length);
- return changeExt(join(val, relativePath), '.d.ts');
- }
+ const m = mapModuleId(moduleId, '.d.ts');
+ if (m !== undefined) {
+ return m;
}
}
return '[name].d.ts';
@@ -61,6 +38,7 @@ export default defineConfig({
stripInternal: true
},
includeExternal: ['monaco-editor-core', '@vscode/monaco-lsp-client']
- })
+ }),
+ dtsDeprecationWarning(),
]
});
diff --git a/build/amd/src/editor.main.ts b/build/amd/src/editor.main.ts
index 527d4ddf..32783bfa 100644
--- a/build/amd/src/editor.main.ts
+++ b/build/amd/src/editor.main.ts
@@ -1,6 +1,24 @@
/// @ts-ignore
import * as require from 'require';
+if (typeof (globalThis as any).require !== 'undefined' && typeof (globalThis as any).require.config === 'function') {
+ (globalThis as any).require.config({
+ ignoreDuplicateModules: [
+ 'vscode-languageserver-types',
+ 'vscode-languageserver-types/main',
+ 'vscode-languageserver-textdocument',
+ 'vscode-languageserver-textdocument/main',
+ 'vscode-nls',
+ 'vscode-nls/vscode-nls',
+ 'jsonc-parser',
+ 'jsonc-parser/main',
+ 'vscode-uri',
+ 'vscode-uri/index',
+ 'vs/basic-languages/typescript/typescript'
+ ]
+ });
+}
+
self.MonacoEnvironment = {
getWorker: function (_moduleId, label) {
if (label === 'json') {
@@ -63,16 +81,10 @@ function getWorkerBootstrapUrl(workerScriptUrl: string | URL) {
}
import 'vs/nls.messages-loader!';
+import * as monaco from '../../../src/editor/editor.main';
export * from '../../../src/editor/editor.main';
-// for now, lsp is only available to amd build
-import * as lsp from '@vscode/monaco-lsp-client';
-export { lsp };
-
-// TODO@hediet get rid of the monaco global
-if ((globalThis as any).monaco) {
- (globalThis as any).monaco.lsp = lsp;
-}
+globalThis.monaco = monaco;
const styleSheetUrl = require.toUrl('vs/editor/editor.main.css');
diff --git a/build/amd/vite.config.js b/build/amd/vite.config.mjs
similarity index 82%
rename from build/amd/vite.config.js
rename to build/amd/vite.config.mjs
index b4f735f4..9be71e84 100644
--- a/build/amd/vite.config.js
+++ b/build/amd/vite.config.mjs
@@ -1,23 +1,13 @@
import { readFileSync } from 'node:fs';
-import { glob } from 'node:fs/promises';
-import { basename, dirname, join, resolve } from 'node:path';
+import { dirname, resolve } from 'node:path';
import { fileURLToPath } from 'node:url';
import { defineConfig } from 'vite';
import { urlToEsmPlugin } from './plugin';
+import { getNlsEntryPoints } from '../shared.mjs';
const __dirname = dirname(fileURLToPath(import.meta.url));
export default defineConfig(async (args) => {
- const monacoEditorCoreDir = join(
- dirname(require.resolve('monaco-editor-core/package.json')),
- 'esm'
- );
- const nlsEntries = {};
- for await (const path of glob(`${monacoEditorCoreDir}/nls.messages.*.js`)) {
- const entryName = basename(path).replace('.js', '');
- nlsEntries[entryName] = path;
- }
-
/** @type {import('vite').UserConfig} */
return {
base: './',
@@ -28,7 +18,7 @@ export default defineConfig(async (args) => {
lib: {
cssFileName: 'editor/editor.main',
entry: {
- ...nlsEntries,
+ ...getNlsEntryPoints(),
'nls.messages-loader': resolve(__dirname, 'src/nls.messages-loader.js'),
'editor/editor.main': resolve(__dirname, 'src/editor.main.ts'),
'basic-languages/monaco.contribution': resolve(
diff --git a/build/build-languages.ts b/build/build-languages.ts
deleted file mode 100644
index f2f0d285..00000000
--- a/build/build-languages.ts
+++ /dev/null
@@ -1,127 +0,0 @@
-/*---------------------------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Licensed under the MIT License. See License.txt in the project root for license information.
- *--------------------------------------------------------------------------------------------*/
-
-import glob from 'glob';
-import { runTsc, massageAndCopyDts, buildESM } from './utils';
-import { removeDir } from './fs';
-
-removeDir(`out/languages`);
-
-runTsc(`src/tsconfig.json`);
-
-//#region Type Defintion
-
-massageAndCopyDts(
- `out/languages/tsc/language/css/monaco.contribution.d.ts`,
- `out/languages/bundled/css.d.ts`,
- 'monaco.languages.css'
-);
-massageAndCopyDts(
- `out/languages/tsc/language/html/monaco.contribution.d.ts`,
- `out/languages/bundled/html.d.ts`,
- 'monaco.languages.html'
-);
-massageAndCopyDts(
- `out/languages/tsc/language/json/monaco.contribution.d.ts`,
- `out/languages/bundled/json.d.ts`,
- 'monaco.languages.json'
-);
-massageAndCopyDts(
- `out/languages/tsc/language/typescript/monaco.contribution.d.ts`,
- `out/languages/bundled/typescript.d.ts`,
- 'monaco.languages.typescript'
-);
-
-//#endregion
-
-//#region css
-
-buildESM({
- base: 'language/css',
- entryPoints: [
- 'src/language/css/monaco.contribution.ts',
- 'src/language/css/cssMode.ts',
- 'src/language/css/css.worker.ts'
- ],
- external: ['monaco-editor-core', '*/cssMode', '*/monaco.contribution']
-});
-
-//#endregion
-
-//#region html
-
-buildESM({
- base: 'language/html',
- entryPoints: [
- 'src/language/html/monaco.contribution.ts',
- 'src/language/html/htmlMode.ts',
- 'src/language/html/html.worker.ts'
- ],
- external: ['monaco-editor-core', '*/htmlMode', '*/monaco.contribution']
-});
-
-//#endregion
-
-//#region json
-
-buildESM({
- base: 'language/json',
- entryPoints: [
- 'src/language/json/monaco.contribution.ts',
- 'src/language/json/jsonMode.ts',
- 'src/language/json/json.worker.ts'
- ],
- external: ['monaco-editor-core', '*/jsonMode', '*/monaco.contribution']
-});
-
-//#endregion
-
-//#region typescript
-
-buildESM({
- base: 'language/typescript',
- entryPoints: [
- 'src/language/typescript/monaco.contribution.ts',
- 'src/language/typescript/tsMode.ts',
- 'src/language/typescript/ts.worker.ts'
- ],
- external: ['monaco-editor-core', '*/tsMode', '*/monaco.contribution']
-});
-
-//#endregion
-
-//#region basic-languages
-
-glob('../src/basic-languages/*/*.contribution.ts', { cwd: __dirname }, function (err, files) {
- if (err) {
- console.error(err);
- return;
- }
-
- const languages = files.map((file) => file.split('/')[3]);
-
- // ESM
- {
- /** @type {string[]} */
- const entryPoints = [
- 'src/basic-languages/monaco.contribution.ts',
- 'src/basic-languages/_.contribution.ts'
- ];
- const external = ['monaco-editor-core', '*/_.contribution'];
- for (const language of languages) {
- entryPoints.push(`src/basic-languages/${language}/${language}.contribution.ts`);
- entryPoints.push(`src/basic-languages/${language}/${language}.ts`);
- external.push(`*/${language}.contribution`);
- external.push(`*/${language}`);
- }
- buildESM({
- base: 'basic-languages',
- entryPoints,
- external
- });
- }
-});
-
-//#endregion
diff --git a/build/build-monaco-editor.ts b/build/build-monaco-editor.ts
index 4471478d..71d9f671 100644
--- a/build/build-monaco-editor.ts
+++ b/build/build-monaco-editor.ts
@@ -5,31 +5,18 @@
import path = require('path');
import fs = require('fs');
-import {
- REPO_ROOT,
- readFiles,
- writeFiles,
- IFile,
- readFile,
- build,
- bundledFileHeader
-} from '../build/utils';
-import { removeDir } from '../build/fs';
-import { generateMetadata } from './releaseMetadata';
+import { REPO_ROOT, readFiles, writeFiles } from '../build/utils';
+import { generateEsmMetadataJsAndDTs } from './releaseMetadata';
+import { buildESM } from './esm/build.script';
import { buildAmdMinDev } from './amd/build.script';
-import ts = require('typescript');
+import { rm } from 'fs/promises';
async function run() {
- removeDir(`out/monaco-editor`);
+ await rm(path.join(REPO_ROOT, './out/monaco-editor'), { recursive: true, force: true });
+ await buildESM();
await buildAmdMinDev();
- // esm folder
- ESM_release();
-
- // monaco.d.ts, editor.api.d.ts
- releaseDTS();
-
// copy types.d.ts from build/amd/out/ to out/monaco-editor/monaco.d.ts (and append `declare global { export import monaco = editor_main; }`)
(() => {
let contents = fs.readFileSync('build/amd/out/types.d.ts', { encoding: 'utf8' });
@@ -37,11 +24,8 @@ async function run() {
fs.writeFileSync('out/monaco-editor/monaco.d.ts', contents);
})();
- // ThirdPartyNotices.txt
- releaseThirdPartyNotices();
-
- // esm/metadata.d.ts, esm/metadata.js
- generateMetadata();
+ createThirdPartyNoticesDotTxt();
+ generateEsmMetadataJsAndDTs();
// package.json
(() => {
@@ -71,281 +55,11 @@ async function run() {
})();
}
-function ESM_release() {
- const coreFiles = readFiles(`node_modules/monaco-editor-core/esm/**/*`, {
- base: 'node_modules/monaco-editor-core/esm',
- // we will create our own editor.api.d.ts which also contains the plugins API
- ignore: ['node_modules/monaco-editor-core/esm/vs/editor/editor.api.d.ts']
- });
- ESM_addImportSuffix(coreFiles);
- ESM_addPluginContribs(coreFiles);
- writeFiles(coreFiles, `out/monaco-editor/esm`);
-
- ESM_releasePlugins();
-
- build({
- entryPoints: ['src/editor/editor.main.ts', 'src/editor/editor.worker.ts'],
- bundle: true,
- target: 'esnext',
- format: 'esm',
- drop: ['debugger'],
- banner: {
- js: bundledFileHeader
- },
- external: ['./src/basic-languages/*', './edcore.main.js', './editor.worker.start'],
- alias: {
- 'monaco-editor-core/esm/vs/editor/editor.worker.start': './editor.worker.start',
- 'monaco-editor-core': './edcore.main.js'
- },
- outbase: `src/`,
- outdir: `out/monaco-editor/esm/vs/`,
- plugins: [
- {
- name: 'example',
- setup(build) {
- build.onResolve({ filter: /\/language\/|\/basic-languages\// }, (args) => {
- if (args.path.includes('monaco-editor-core')) {
- return undefined;
- }
- return { external: true };
- });
- }
- }
- ]
- });
-}
-
-/**
- * Release a plugin to `esm`.
- * Adds a dependency to 'vs/editor/editor.api' in contrib files in order for `monaco` to be defined.
- * Rewrites imports for 'monaco-editor-core/**'
- */
-function ESM_releasePlugins() {
- const files = readFiles(`out/languages/bundled/esm/**/*`, { base: 'out/languages/bundled/esm/' });
-
- for (const file of files) {
- if (!/(\.js$)|(\.ts$)/.test(file.path)) {
- continue;
- }
-
- let contents = file.contents.toString();
-
- // replace all `from "monaco-editor-core"` with from relativePath
- let relativePath = path
- .relative(path.dirname(file.path), 'vs/editor/editor.api')
- .replace(/\\/g, '/');
-
- contents = contents.replace(
- /from "monaco-editor-core"/g,
- `from ${JSON.stringify(relativePath)}`
- );
-
- file.contents = Buffer.from(contents);
- }
-
- for (const file of files) {
- if (!/monaco\.contribution\.js$/.test(file.path)) {
- continue;
- }
-
- const apiFilePath = 'vs/editor/editor.api';
- let relativePath = path.relative(path.dirname(file.path), apiFilePath).replace(/\\/g, '/');
- if (!/(^\.\/)|(^\.\.\/)/.test(relativePath)) {
- relativePath = './' + relativePath;
- }
-
- let contents = file.contents.toString();
- contents = `import '${relativePath}';\n` + contents;
- file.contents = Buffer.from(contents);
- }
-
- ESM_addImportSuffix(files);
- writeFiles(files, `out/monaco-editor/esm`);
-}
-
-/**
- * Adds `.js` to all import statements.
- */
-function ESM_addImportSuffix(files: IFile[]) {
- for (const file of files) {
- if (!/\.js$/.test(file.path)) {
- continue;
- }
-
- let contents = file.contents.toString();
-
- const info = ts.preProcessFile(contents);
- for (let i = info.importedFiles.length - 1; i >= 0; i--) {
- const importText = info.importedFiles[i].fileName;
- const pos = info.importedFiles[i].pos;
- const end = info.importedFiles[i].end;
-
- if (/(\.css)|(\.js)$/.test(importText)) {
- // A CSS import or an import already using .js
- continue;
- }
-
- contents = contents.substring(0, pos + 1) + importText + '.js' + contents.substring(end + 1);
- }
-
- file.contents = Buffer.from(contents);
- }
-}
-
-/**
- * - Rename esm/vs/editor/editor.main.js to esm/vs/editor/edcore.main.js
- * - Create esm/vs/editor/editor.main.js that that stiches things together
- */
-function ESM_addPluginContribs(files: IFile[]) {
- for (const file of files) {
- if (!/editor\.main\.js$/.test(file.path)) {
- continue;
- }
- file.path = file.path.replace(/editor\.main/, 'edcore.main');
- }
-}
-
-/**
- * Edit monaco.d.ts:
- * - append monaco.d.ts from plugins
- */
-function releaseDTS() {
- const monacodts = readFiles('node_modules/monaco-editor-core/monaco.d.ts', {
- base: 'node_modules/monaco-editor-core'
- })[0];
-
- let contents = monacodts.contents.toString();
-
- const additionalDtsFiles: Record = {
- 'out/languages/tsc/common/workers.d.ts': 'monaco.editor'
- };
- Object.entries(additionalDtsFiles).forEach(([filePath, namespace]) => {
- try {
- const dtsFile = readFile(filePath);
- let dtsContent = dtsFile.contents.toString();
-
- // Remove imports
- dtsContent = dtsContent.replace(/import .*\n/gm, '');
- dtsContent = dtsContent.replace(/export declare function/gm, 'export function');
-
- // Wrap in namespace if specified
- if (namespace) {
- dtsContent = `declare namespace ${namespace} {\n${dtsContent
- .split('\n')
- .map((line) => (line ? ` ${line}` : line))
- .join('\n')}\n}`;
- }
-
- contents += '\n' + dtsContent;
- } catch (error) {
- console.warn(`Could not read d.ts file: ${filePath}`);
- }
- });
-
- const extraContent = readFiles('out/languages/bundled/*.d.ts', {
- base: 'out/languages/bundled/'
- }).map((file) => {
- return file.contents.toString().replace(/\/\/\/ ;
+export type PostCssCompatible = {
+ process: (css: string, opt: {
+ from: string;
+ to: string;
+ map: {
+ prev: string;
+ inline: boolean;
+ } | null;
+ }) => string | {
+ css: string;
+ map?: string;
+ };
+};
+export interface CompilationOptions {
+ outputExt: string;
+ sass?: SassAsyncCompiler;
+ postProcessor?: (css: string, map: string) => Promise;
+ loadPaths?: string[];
+ sourceMap?: boolean;
+ sassOptions: Options<"async">;
+}
+export declare const compileSass: (sassPath: string, outWatchList: string[] | undefined, { outputExt, sass, postProcessor, loadPaths, sourceMap, sassOptions }: CompilationOptions) => Promise<{
+ css: string;
+ map: string;
+}>;
+export {};
diff --git a/build/esm/rollup-plugin-keep-css-imports/dist/constants.d.ts b/build/esm/rollup-plugin-keep-css-imports/dist/constants.d.ts
new file mode 100644
index 00000000..b9f48378
--- /dev/null
+++ b/build/esm/rollup-plugin-keep-css-imports/dist/constants.d.ts
@@ -0,0 +1,3 @@
+export declare const PLUGIN_NAME = "keep-css-imports";
+export declare const FILE_URL_PREFIX: string;
+export declare const KEY_EXT_STRING = ".[keep-css-imports-plugin-ext]";
diff --git a/build/esm/rollup-plugin-keep-css-imports/dist/helpers.d.ts b/build/esm/rollup-plugin-keep-css-imports/dist/helpers.d.ts
new file mode 100644
index 00000000..0ab4c3ec
--- /dev/null
+++ b/build/esm/rollup-plugin-keep-css-imports/dist/helpers.d.ts
@@ -0,0 +1,52 @@
+import { EmitFile } from "rollup";
+import { StylesMap } from "./types";
+export declare const escapeRegex: (val: any) => any;
+export declare const assertDuplicates: (stylesToEmit: StylesMap) => void;
+export declare const assertLocation: (outDir: any, assetPath: any) => void;
+export declare const ensureSourceMap: ({ css, map }: {
+ css?: string | Uint8Array;
+ map?: string | Uint8Array;
+}, includeSourceMap: boolean | "inline" | undefined, fileName: string, onEmit: EmitFile) => string | Uint8Array;
+export declare const formatProcessedToCSS: (input: string | {
+ css: string;
+ map?: string | object;
+}, sourceMap: boolean) => {
+ css: string;
+ map: string;
+};
+export declare const requireSass: () => Promise<{
+ default: typeof import("sass");
+ AsyncCompiler: typeof import("sass").AsyncCompiler;
+ Compiler: typeof import("sass").Compiler;
+ compile: typeof import("sass").compile;
+ compileAsync: typeof import("sass").compileAsync;
+ compileString: typeof import("sass").compileString;
+ compileStringAsync: typeof import("sass").compileStringAsync;
+ initCompiler: typeof import("sass").initCompiler;
+ initAsyncCompiler: typeof import("sass").initAsyncCompiler;
+ Exception: typeof import("sass").Exception;
+ Logger: typeof import("sass").Logger;
+ CalculationInterpolation: typeof import("sass").CalculationInterpolation;
+ CalculationOperation: typeof import("sass").CalculationOperation;
+ SassArgumentList: typeof import("sass").SassArgumentList;
+ SassBoolean: typeof import("sass").SassBoolean;
+ SassCalculation: typeof import("sass").SassCalculation;
+ SassColor: typeof import("sass").SassColor;
+ SassFunction: typeof import("sass").SassFunction;
+ SassList: typeof import("sass").SassList;
+ SassMap: typeof import("sass").SassMap;
+ SassMixin: typeof import("sass").SassMixin;
+ SassNumber: typeof import("sass").SassNumber;
+ SassString: typeof import("sass").SassString;
+ Value: typeof import("sass").Value;
+ sassFalse: import("sass").SassBoolean;
+ sassNull: import("sass").Value;
+ sassTrue: import("sass").SassBoolean;
+ FALSE: import("sass").types.Boolean;
+ NULL: import("sass").types.Null;
+ TRUE: import("sass").types.Boolean;
+ types: typeof import("sass").types;
+ render: typeof import("sass").render;
+ renderSync: typeof import("sass").renderSync;
+ info: string;
+}>;
diff --git a/build/esm/rollup-plugin-keep-css-imports/dist/index.d.ts b/build/esm/rollup-plugin-keep-css-imports/dist/index.d.ts
new file mode 100644
index 00000000..0b911594
--- /dev/null
+++ b/build/esm/rollup-plugin-keep-css-imports/dist/index.d.ts
@@ -0,0 +1,4 @@
+import type { Plugin } from "rollup";
+import { KeepCssImportsOptions } from "./types";
+declare function keepCssImports({ outputExt, outputPath, skipCurrentFolderPart, includeRegexp, sass, postProcessor, sassOptions, ...options }?: KeepCssImportsOptions): Plugin;
+export default keepCssImports;
diff --git a/build/esm/rollup-plugin-keep-css-imports/dist/index.mjs b/build/esm/rollup-plugin-keep-css-imports/dist/index.mjs
new file mode 100644
index 00000000..fc3714c7
--- /dev/null
+++ b/build/esm/rollup-plugin-keep-css-imports/dist/index.mjs
@@ -0,0 +1,487 @@
+import { readFile } from 'fs/promises';
+import * as path from 'path';
+import MagicString from 'magic-string';
+
+/******************************************************************************
+Copyright (c) Microsoft Corporation.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+***************************************************************************** */
+/* global Reflect, Promise, SuppressedError, Symbol */
+
+
+var __assign = function () {
+ __assign = Object.assign || function __assign(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign.apply(this, arguments);
+};
+
+function __rest(s, e) {
+ var t = {};
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
+ t[p] = s[p];
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
+ t[p[i]] = s[p[i]];
+ }
+ return t;
+}
+
+function __awaiter(thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+}
+
+function __generator(thisArg, body) {
+ var _ = { label: 0, sent: function () { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+}
+
+typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
+ var e = new Error(message);
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
+};
+
+var escapeRegex = function (val) { return val.replace(/[/\-\\^$*+?.()|[\]{}]/g, "\\$&"); };
+var assertDuplicates = function (stylesToEmit) {
+ Object.values(stylesToEmit).forEach(function (v, i, all) {
+ if (all.some(function (av, ai) { return !!v.output && v.output === av.output && ai != i; })) {
+ throw new Error("Two or more assets have conflicting output path ".concat(v.output));
+ }
+ });
+};
+var assertLocation = function (outDir, assetPath) {
+ if (!path.normalize(assetPath).startsWith(path.normalize(outDir))) {
+ throw new Error("Output path ".concat(assetPath, " must be in output directory ").concat(outDir));
+ }
+};
+var ensureSourceMap = function (_a, includeSourceMap, fileName, onEmit) {
+ var css = _a.css, map = _a.map;
+ if (map) {
+ if (includeSourceMap === "inline") {
+ css += "\n/*# sourceMappingURL=data:application/json;base64,".concat((map instanceof Uint8Array ? Buffer.from(map) : Buffer.from(map, "utf8")).toString("base64"), "*/");
+ }
+ else if (includeSourceMap === true) {
+ css += "\n/*# sourceMappingURL=".concat(path.basename(fileName), ".map */");
+ }
+ if (includeSourceMap === true) {
+ onEmit({
+ type: "asset",
+ fileName: fileName + ".map",
+ source: map,
+ });
+ }
+ }
+ return css;
+};
+var formatProcessedToCSS = function (input, sourceMap) {
+ return typeof input === "string"
+ ? { css: input, map: "" }
+ : typeof input === "object"
+ ? {
+ css: input.css,
+ map: !sourceMap ? "" : typeof input.map === "object" ? JSON.stringify(input.map) : input.map,
+ }
+ : input;
+};
+var requireSass = function () {
+ try {
+ return import('sass');
+ }
+ catch (e) {
+ throw new Error("You have to install `sass` package! Try running\n\t" +
+ "npm install --save-dev sass\nor\nyarn add sass --dev\n" +
+ "or use `sass` option to pass processor");
+ }
+};
+
+function ensureCompiler(sass) {
+ return __awaiter(this, void 0, void 0, function () {
+ var sassProcessor, _a;
+ return __generator(this, function (_b) {
+ switch (_b.label) {
+ case 0:
+ _a = sass;
+ if (_a) return [3 /*break*/, 2];
+ return [4 /*yield*/, requireSass()];
+ case 1:
+ _a = (_b.sent());
+ _b.label = 2;
+ case 2:
+ sassProcessor = _a;
+ if (!("compileAsync" in sassProcessor)) {
+ throw new Error("You have to install `sass` package! Or provide an object which implements `compileAsync` as `sass` option");
+ }
+ return [2 /*return*/, sassProcessor];
+ }
+ });
+ });
+}
+var isPostCssCompatible = function (result) {
+ return result && typeof result === "object" && "process" in result && typeof result.process === "function";
+};
+var compileSass = function (sassPath, outWatchList, _a) {
+ var outputExt = _a.outputExt, sass = _a.sass, postProcessor = _a.postProcessor, loadPaths = _a.loadPaths, sourceMap = _a.sourceMap, sassOptions = _a.sassOptions;
+ return __awaiter(void 0, void 0, void 0, function () {
+ var sassProcessor, watchListNeeded, compiled, css, mapObject, sources, map, result, _b, _c;
+ return __generator(this, function (_d) {
+ switch (_d.label) {
+ case 0:
+ if (!sassPath) {
+ return [2 /*return*/, { css: "", map: "" }];
+ }
+ return [4 /*yield*/, ensureCompiler(sass)];
+ case 1:
+ sassProcessor = _d.sent();
+ watchListNeeded = Array.isArray(outWatchList);
+ return [4 /*yield*/, sassProcessor.compileAsync(sassPath, __assign({ loadPaths: loadPaths, style: "expanded", sourceMap: !!sourceMap || watchListNeeded, sourceMapIncludeSources: !!sourceMap || watchListNeeded }, (sassOptions || [])))];
+ case 2:
+ compiled = _d.sent();
+ css = compiled.css.toString();
+ if (watchListNeeded && compiled.sourceMap && typeof compiled.sourceMap === "object") {
+ mapObject = "toJSON" in compiled.sourceMap && typeof compiled.sourceMap.toJSON === "function"
+ ? compiled.sourceMap.toJSON()
+ : compiled.sourceMap;
+ sources = mapObject.sources || mapObject._sources;
+ outWatchList.push.apply(outWatchList, sources.filter(function (s) { return s && typeof s === "string"; }));
+ }
+ map = compiled.sourceMap
+ ? typeof compiled.sourceMap === "object"
+ ? JSON.stringify(compiled.sourceMap)
+ : compiled.sourceMap
+ : "";
+ if (!(typeof postProcessor === "function")) return [3 /*break*/, 7];
+ return [4 /*yield*/, postProcessor(css, map)];
+ case 3:
+ result = _d.sent();
+ if ((typeof result !== "string" && typeof result !== "object") || result === null) {
+ throw new Error("`postProcessor` must return string, object with `css` and `map` or PostCSS like object which implements `process` function");
+ }
+ _b = formatProcessedToCSS;
+ if (!isPostCssCompatible(result) // If PostCSS compatible result
+ ) return [3 /*break*/, 5]; // If PostCSS compatible result
+ return [4 /*yield*/, Promise.resolve(result.process(css, {
+ from: sassPath,
+ to: path.parse(sassPath).name + outputExt,
+ map: map ? { prev: map, inline: false } : null,
+ }))];
+ case 4:
+ _c = _d.sent();
+ return [3 /*break*/, 6];
+ case 5:
+ _c = result;
+ _d.label = 6;
+ case 6: return [2 /*return*/, _b.apply(void 0, [_c, sourceMap])];
+ case 7: return [2 /*return*/, { css: css, map: sourceMap ? map : undefined }];
+ }
+ });
+ });
+};
+
+var PLUGIN_NAME = "keep-css-imports";
+var FILE_URL_PREFIX = new URL("file://").toString();
+var KEY_EXT_STRING = ".[keep-css-imports-plugin-ext]";
+
+var createErrorMessage = function (message) { return "[".concat(PLUGIN_NAME, "] ").concat(message); };
+var ImportUpdater = /** @class */ (function () {
+ function ImportUpdater(pluginContext, outputOptions) {
+ var _this = this;
+ this.addImportAndGetNewId = function (resolvedId) {
+ var moduleIndex = _this._pluginContext.allStyleImports.indexOf(resolvedId);
+ return !~moduleIndex ? _this._pluginContext.allStyleImports.push(resolvedId) - 1 : moduleIndex;
+ };
+ this._pluginContext = pluginContext;
+ this._outputOptions = outputOptions;
+ }
+ ImportUpdater.prototype.getMagicId = function (id) {
+ return "\0" + this.addImportAndGetNewId(id) + KEY_EXT_STRING;
+ };
+ ImportUpdater.prototype.updateImports = function (code, chunk, bundleOutDir, moduleRoot) {
+ var _this = this;
+ var magicString = new MagicString(code);
+ var matchRegex = new RegExp("\0([^\"']+)".concat(escapeRegex(KEY_EXT_STRING)), "g");
+ Array.from(code.matchAll(matchRegex))
+ .reverse()
+ .forEach(function (m) {
+ return _this.updateMatchedImport(m, magicString, {
+ chunk: chunk,
+ bundleOutDir: bundleOutDir,
+ moduleRoot: moduleRoot,
+ });
+ });
+ return {
+ code: magicString.toString(),
+ map: magicString.generateMap({ hires: true }),
+ };
+ };
+ ImportUpdater.prototype.updateMatchedImport = function (m, magicString, chunkDetails) {
+ var importId = m[0];
+ var assetId = this._pluginContext.allStyleImports[m[1]];
+ if (!assetId || typeof assetId !== "string" || !this._pluginContext.stylesToEmit[assetId]) {
+ return;
+ }
+ var updatedImport = this.saveAndGetUpdatedImportPath(assetId, chunkDetails);
+ var start = m.index;
+ var end = start + importId.length;
+ magicString.overwrite(start, end, updatedImport);
+ this.updateChunk(importId, updatedImport, chunkDetails.chunk);
+ };
+ ImportUpdater.prototype.updateChunk = function (importId, updatedImport, chunk) {
+ if (chunk.importedBindings[importId]) {
+ chunk.importedBindings[updatedImport] = chunk.importedBindings[importId];
+ if (updatedImport !== importId) {
+ delete chunk.importedBindings[importId];
+ }
+ }
+ var importIndex = chunk.imports.indexOf(importId);
+ if (~importIndex) {
+ chunk.imports[importIndex] = updatedImport;
+ }
+ };
+ ImportUpdater.prototype.saveAndGetUpdatedImportPath = function (assetId, _a) {
+ var bundleOutDir = _a.bundleOutDir, moduleRoot = _a.moduleRoot, chunk = _a.chunk;
+ var assetOutput = this.resolveOutputPath(bundleOutDir, assetId, moduleRoot);
+ var updatedImport = path
+ .relative(path.dirname(path.resolve(bundleOutDir, chunk.fileName)), assetOutput)
+ .replace(/\\/g, "/");
+ this._pluginContext.stylesToEmit[assetId].output = path.relative(path.resolve(bundleOutDir), assetOutput);
+ if (this.shouldAddPrefixCurrentDir(updatedImport) &&
+ !updatedImport.startsWith("./") &&
+ !updatedImport.startsWith("../") &&
+ !updatedImport.match(/^[a-zA-Z]:/)) {
+ updatedImport = "./" + updatedImport;
+ }
+ return updatedImport;
+ };
+ ImportUpdater.prototype.shouldAddPrefixCurrentDir = function (updatedImport) {
+ var skip = this._outputOptions.skipCurrentFolderPart;
+ return !skip || (skip instanceof RegExp && !skip.test(updatedImport));
+ };
+ ImportUpdater.prototype.resolveOutputPath = function (bundleOutDir, assetId, moduleRoot) {
+ var _a = this._outputOptions, outputPath = _a.outputPath, outputDir = _a.outputDir, outputExt = _a.outputExt;
+ var newPath = undefined;
+ if (typeof outputPath === "function") {
+ newPath = outputPath(assetId);
+ assertLocation(bundleOutDir, newPath);
+ }
+ else if (typeof outputPath === "string") {
+ newPath = path.resolve(bundleOutDir, outputDir, outputPath !== "keep" ? outputPath : path.relative(moduleRoot, assetId));
+ assertLocation(bundleOutDir, newPath);
+ }
+ else {
+ throw new Error(createErrorMessage("Invalid outputPath option value!"));
+ }
+ return newPath.replace(/\.s[ca]ss$/, outputExt);
+ };
+ return ImportUpdater;
+}());
+
+var ensureStylesInfo = function (stylesMap, importer, resolvedId) {
+ stylesMap[resolvedId] = stylesMap[resolvedId] || { importers: [], watchList: [] };
+ stylesMap[resolvedId].importers.push(importer);
+ return stylesMap[resolvedId];
+};
+var ensureCodeAndWatchList = function (filePath, stylesInfo, isWatch, compilerOptions) {
+ return __awaiter(void 0, void 0, void 0, function () {
+ var outWatchList, _a, _b, css, map;
+ return __generator(this, function (_c) {
+ switch (_c.label) {
+ case 0:
+ outWatchList = [];
+ if (!filePath.endsWith(".css")) return [3 /*break*/, 2];
+ _a = stylesInfo;
+ return [4 /*yield*/, readFile(filePath, "utf8")];
+ case 1:
+ _a.css = _c.sent();
+ return [3 /*break*/, 4];
+ case 2: return [4 /*yield*/, compileSass(filePath, isWatch ? outWatchList : undefined, compilerOptions)];
+ case 3:
+ _b = _c.sent(), css = _b.css, map = _b.map;
+ stylesInfo.css = css;
+ stylesInfo.map = map;
+ _c.label = 4;
+ case 4:
+ outWatchList.push(filePath);
+ stylesInfo.watchList = outWatchList.map(function (watchFile) { return path.resolve(watchFile.replace(FILE_URL_PREFIX, "")); });
+ return [2 /*return*/];
+ }
+ });
+ });
+};
+function keepCssImports(_a) {
+ if (_a === void 0) { _a = {}; }
+ var _b = _a.outputExt, outputExt = _b === void 0 ? ".css" : _b, _c = _a.outputPath, outputPath = _c === void 0 ? "keep" : _c, _d = _a.skipCurrentFolderPart, skipCurrentFolderPart = _d === void 0 ? false : _d, _e = _a.includeRegexp, includeRegexp = _e === void 0 ? /\.(?:s[ca]|c)ss$/ : _e, sass = _a.sass, postProcessor = _a.postProcessor, sassOptions = _a.sassOptions, options = __rest(_a, ["outputExt", "outputPath", "skipCurrentFolderPart", "includeRegexp", "sass", "postProcessor", "sassOptions"]);
+ var stylesOutputOptions = {
+ outputPath: outputPath,
+ outputExt: outputExt,
+ outputDir: options.outputDir ? path.resolve(options.outputDir) : "./",
+ skipCurrentFolderPart: skipCurrentFolderPart,
+ };
+ var context = {
+ allStyleImports: [],
+ modulesWithCss: new Set(),
+ stylesToEmit: {},
+ };
+ var importUpdater = new ImportUpdater(context, stylesOutputOptions);
+ var loadPaths = options.includePaths || ["node_modules/"];
+ loadPaths.push(process.cwd());
+ loadPaths = loadPaths.filter(function (v, i, a) { return a.indexOf(v) === i; });
+ var compilerOptions = {
+ outputExt: outputExt,
+ sass: sass,
+ postProcessor: typeof postProcessor === "function"
+ ? function (css, map) { return postProcessor(css, map, context.stylesToEmit); }
+ : undefined,
+ loadPaths: loadPaths,
+ sourceMap: !!options.sourceMap,
+ sassOptions: sassOptions,
+ };
+ return {
+ name: PLUGIN_NAME,
+ resolveId: function (source, importer, resolveOptions) {
+ return __awaiter(this, void 0, void 0, function () {
+ var _a, custom, _b, _c, _d, _e, _f, alreadyResolving, resolved, styleInfo;
+ var _g, _h;
+ var _this = this;
+ return __generator(this, function (_j) {
+ switch (_j.label) {
+ case 0:
+ if (!importer || !includeRegexp.test(source) || /\0/.test(source)) {
+ return [2 /*return*/, null];
+ }
+ _a = resolveOptions.custom, custom = _a === void 0 ? {} : _a;
+ _b = custom, _c = PLUGIN_NAME, _d = _b[_c], _e = _d === void 0 ? {} : _d, _f = _e.resolving, alreadyResolving = _f === void 0 ? false : _f;
+ if (alreadyResolving) {
+ return [2 /*return*/, null];
+ }
+ return [4 /*yield*/, this.resolve(source, importer, __assign(__assign({ skipSelf: true }, resolveOptions), { custom: __assign(__assign({}, custom), (_g = {}, _g[PLUGIN_NAME] = __assign(__assign({}, custom[PLUGIN_NAME]), { resolving: true }), _g)) }))];
+ case 1:
+ resolved = _j.sent();
+ if (!resolved || resolved.external) {
+ return [2 /*return*/, resolved];
+ }
+ context.modulesWithCss.add(importer);
+ styleInfo = ensureStylesInfo(context.stylesToEmit, importer, resolved.id);
+ return [4 /*yield*/, ensureCodeAndWatchList(resolved.id, styleInfo, this.meta.watchMode, compilerOptions)];
+ case 2:
+ _j.sent();
+ styleInfo.watchList.forEach(function (watchFile) {
+ _this.addWatchFile(watchFile);
+ });
+ return [2 /*return*/, {
+ id: importUpdater.getMagicId(resolved.id),
+ meta: (_h = {}, _h[PLUGIN_NAME] = { sourceId: resolved.id }, _h),
+ external: true,
+ }];
+ }
+ });
+ });
+ },
+ buildStart: function () {
+ var _this = this;
+ // Every rebuild will refresh watcher, so we need to reattach
+ if (this.meta.watchMode) {
+ var allWatched_1 = this.getWatchFiles();
+ Object.values(context.stylesToEmit).forEach(function (styleInfo) {
+ return styleInfo.watchList.forEach(function (watchFile) {
+ if (!allWatched_1.find(function (watched) { return path.normalize(watched) === path.normalize(watchFile); })) {
+ _this.addWatchFile(watchFile);
+ }
+ });
+ });
+ }
+ },
+ watchChange: function (id) {
+ return __awaiter(this, void 0, void 0, function () {
+ var resolvedId, filesToUpdate;
+ var _this = this;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ resolvedId = path.resolve(id);
+ filesToUpdate = Object.entries(context.stylesToEmit).filter(function (_a) {
+ var styleInfo = _a[1];
+ return styleInfo.watchList.includes(resolvedId);
+ });
+ return [4 /*yield*/, Promise.all(filesToUpdate.map(function (_a) {
+ var fileName = _a[0], styleInfo = _a[1];
+ return ensureCodeAndWatchList(fileName, styleInfo, _this.meta.watchMode, compilerOptions);
+ }))];
+ case 1:
+ _a.sent();
+ return [2 /*return*/];
+ }
+ });
+ });
+ },
+ renderChunk: function (code, chunk, outputOptions) {
+ var bundleOutDir = path.resolve(outputOptions.dir || path.dirname(outputOptions.file));
+ // Always do it, otherwise some modules are missed
+ var moduleRoot = outputOptions.preserveModulesRoot || process.cwd();
+ return importUpdater.updateImports(code, chunk, bundleOutDir, moduleRoot);
+ },
+ generateBundle: function (_, __, isWrite) {
+ if (!isWrite) {
+ return;
+ }
+ assertDuplicates(context.stylesToEmit);
+ for (var file in context.stylesToEmit) {
+ var stylesInfo = context.stylesToEmit[file];
+ var fileName = stylesInfo.output;
+ var source = file.endsWith(".css")
+ ? stylesInfo.css
+ : ensureSourceMap(stylesInfo, options.sourceMap || (sassOptions === null || sassOptions === void 0 ? void 0 : sassOptions.sourceMap), fileName, this.emitFile);
+ this.emitFile({
+ type: "asset",
+ fileName: fileName,
+ source: source,
+ });
+ }
+ },
+ };
+}
+
+export { keepCssImports as default };
diff --git a/build/esm/rollup-plugin-keep-css-imports/dist/index.original.mjs b/build/esm/rollup-plugin-keep-css-imports/dist/index.original.mjs
new file mode 100644
index 00000000..26a1ce76
--- /dev/null
+++ b/build/esm/rollup-plugin-keep-css-imports/dist/index.original.mjs
@@ -0,0 +1,489 @@
+import { readFile } from 'fs/promises';
+import * as path from 'path';
+import MagicString from 'magic-string';
+
+/******************************************************************************
+Copyright (c) Microsoft Corporation.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+***************************************************************************** */
+/* global Reflect, Promise, SuppressedError, Symbol */
+
+
+var __assign = function () {
+ __assign = Object.assign || function __assign(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign.apply(this, arguments);
+};
+
+function __rest(s, e) {
+ var t = {};
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
+ t[p] = s[p];
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
+ t[p[i]] = s[p[i]];
+ }
+ return t;
+}
+
+function __awaiter(thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+}
+
+function __generator(thisArg, body) {
+ var _ = { label: 0, sent: function () { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+}
+
+typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
+ var e = new Error(message);
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
+};
+
+var escapeRegex = function (val) { return val.replace(/[/\-\\^$*+?.()|[\]{}]/g, "\\$&"); };
+var assertDuplicates = function (stylesToEmit) {
+ Object.values(stylesToEmit).forEach(function (v, i, all) {
+ if (all.some(function (av, ai) { return !!v.output && v.output === av.output && ai != i; })) {
+ throw new Error("Two or more assets have conflicting output path ".concat(v.output));
+ }
+ });
+};
+var assertLocation = function (outDir, assetPath) {
+ if (!path.normalize(assetPath).startsWith(path.normalize(outDir))) {
+ throw new Error("Output path ".concat(assetPath, " must be in output directory ").concat(outDir));
+ }
+};
+var ensureSourceMap = function (_a, includeSourceMap, fileName, onEmit) {
+ var css = _a.css, map = _a.map;
+ if (map) {
+ if (includeSourceMap === "inline") {
+ css += "\n/*# sourceMappingURL=data:application/json;base64,".concat((map instanceof Uint8Array ? Buffer.from(map) : Buffer.from(map, "utf8")).toString("base64"), "*/");
+ }
+ else if (includeSourceMap === true) {
+ css += "\n/*# sourceMappingURL=".concat(path.basename(fileName), ".map */");
+ }
+ if (includeSourceMap === true) {
+ onEmit({
+ type: "asset",
+ fileName: fileName + ".map",
+ source: map,
+ });
+ }
+ }
+ return css;
+};
+var formatProcessedToCSS = function (input, sourceMap) {
+ return typeof input === "string"
+ ? { css: input, map: "" }
+ : typeof input === "object"
+ ? {
+ css: input.css,
+ map: !sourceMap ? "" : typeof input.map === "object" ? JSON.stringify(input.map) : input.map,
+ }
+ : input;
+};
+var requireSass = function () {
+ try {
+ return import('sass');
+ }
+ catch (e) {
+ throw new Error("You have to install `sass` package! Try running\n\t" +
+ "npm install --save-dev sass\nor\nyarn add sass --dev\n" +
+ "or use `sass` option to pass processor");
+ }
+};
+
+function ensureCompiler(sass) {
+ return __awaiter(this, void 0, void 0, function () {
+ var sassProcessor, _a;
+ return __generator(this, function (_b) {
+ switch (_b.label) {
+ case 0:
+ _a = sass;
+ if (_a) return [3 /*break*/, 2];
+ return [4 /*yield*/, requireSass()];
+ case 1:
+ _a = (_b.sent());
+ _b.label = 2;
+ case 2:
+ sassProcessor = _a;
+ if (!("compileAsync" in sassProcessor)) {
+ throw new Error("You have to install `sass` package! Or provide an object which implements `compileAsync` as `sass` option");
+ }
+ return [2 /*return*/, sassProcessor];
+ }
+ });
+ });
+}
+var isPostCssCompatible = function (result) {
+ return result && typeof result === "object" && "process" in result && typeof result.process === "function";
+};
+var compileSass = function (sassPath, outWatchList, _a) {
+ var outputExt = _a.outputExt, sass = _a.sass, postProcessor = _a.postProcessor, loadPaths = _a.loadPaths, sourceMap = _a.sourceMap, sassOptions = _a.sassOptions;
+ return __awaiter(void 0, void 0, void 0, function () {
+ var sassProcessor, watchListNeeded, compiled, css, mapObject, sources, map, result, _b, _c;
+ return __generator(this, function (_d) {
+ switch (_d.label) {
+ case 0:
+ if (!sassPath) {
+ return [2 /*return*/, { css: "", map: "" }];
+ }
+ return [4 /*yield*/, ensureCompiler(sass)];
+ case 1:
+ sassProcessor = _d.sent();
+ watchListNeeded = Array.isArray(outWatchList);
+ return [4 /*yield*/, sassProcessor.compileAsync(sassPath, __assign({ loadPaths: loadPaths, style: "expanded", sourceMap: !!sourceMap || watchListNeeded, sourceMapIncludeSources: !!sourceMap || watchListNeeded }, (sassOptions || [])))];
+ case 2:
+ compiled = _d.sent();
+ css = compiled.css.toString();
+ if (watchListNeeded && compiled.sourceMap && typeof compiled.sourceMap === "object") {
+ mapObject = "toJSON" in compiled.sourceMap && typeof compiled.sourceMap.toJSON === "function"
+ ? compiled.sourceMap.toJSON()
+ : compiled.sourceMap;
+ sources = mapObject.sources || mapObject._sources;
+ outWatchList.push.apply(outWatchList, sources.filter(function (s) { return s && typeof s === "string"; }));
+ }
+ map = compiled.sourceMap
+ ? typeof compiled.sourceMap === "object"
+ ? JSON.stringify(compiled.sourceMap)
+ : compiled.sourceMap
+ : "";
+ if (!(typeof postProcessor === "function")) return [3 /*break*/, 7];
+ return [4 /*yield*/, postProcessor(css, map)];
+ case 3:
+ result = _d.sent();
+ if ((typeof result !== "string" && typeof result !== "object") || result === null) {
+ throw new Error("`postProcessor` must return string, object with `css` and `map` or PostCSS like object which implements `process` function");
+ }
+ _b = formatProcessedToCSS;
+ if (!isPostCssCompatible(result) // If PostCSS compatible result
+ ) return [3 /*break*/, 5]; // If PostCSS compatible result
+ return [4 /*yield*/, Promise.resolve(result.process(css, {
+ from: sassPath,
+ to: path.parse(sassPath).name + outputExt,
+ map: map ? { prev: map, inline: false } : null,
+ }))];
+ case 4:
+ _c = _d.sent();
+ return [3 /*break*/, 6];
+ case 5:
+ _c = result;
+ _d.label = 6;
+ case 6: return [2 /*return*/, _b.apply(void 0, [_c, sourceMap])];
+ case 7: return [2 /*return*/, { css: css, map: sourceMap ? map : undefined }];
+ }
+ });
+ });
+};
+
+var PLUGIN_NAME = "keep-css-imports";
+var FILE_URL_PREFIX = new URL("file://").toString();
+var KEY_EXT_STRING = ".[keep-css-imports-plugin-ext]";
+
+var createErrorMessage = function (message) { return "[".concat(PLUGIN_NAME, "] ").concat(message); };
+var ImportUpdater = /** @class */ (function () {
+ function ImportUpdater(pluginContext, outputOptions) {
+ var _this = this;
+ this.addImportAndGetNewId = function (resolvedId) {
+ var moduleIndex = _this._pluginContext.allStyleImports.indexOf(resolvedId);
+ return !~moduleIndex ? _this._pluginContext.allStyleImports.push(resolvedId) - 1 : moduleIndex;
+ };
+ this._pluginContext = pluginContext;
+ this._outputOptions = outputOptions;
+ }
+ ImportUpdater.prototype.getMagicId = function (id) {
+ return "\0" + this.addImportAndGetNewId(id) + KEY_EXT_STRING;
+ };
+ ImportUpdater.prototype.updateImports = function (code, chunk, bundleOutDir, moduleRoot) {
+ var _this = this;
+ var magicString = new MagicString(code);
+ var matchRegex = new RegExp("\0([^\"']+)".concat(escapeRegex(KEY_EXT_STRING)), "g");
+ Array.from(code.matchAll(matchRegex))
+ .reverse()
+ .forEach(function (m) {
+ return _this.updateMatchedImport(m, magicString, {
+ chunk: chunk,
+ bundleOutDir: bundleOutDir,
+ moduleRoot: moduleRoot,
+ });
+ });
+ return {
+ code: magicString.toString(),
+ map: magicString.generateMap({ hires: true }),
+ };
+ };
+ ImportUpdater.prototype.updateMatchedImport = function (m, magicString, chunkDetails) {
+ var importId = m[0];
+ var assetId = this._pluginContext.allStyleImports[m[1]];
+ if (!assetId || typeof assetId !== "string" || !this._pluginContext.stylesToEmit[assetId]) {
+ return;
+ }
+ var updatedImport = this.saveAndGetUpdatedImportPath(assetId, chunkDetails);
+ var start = m.index;
+ var end = start + importId.length;
+ magicString.overwrite(start, end, updatedImport);
+ this.updateChunk(importId, updatedImport, chunkDetails.chunk);
+ };
+ ImportUpdater.prototype.updateChunk = function (importId, updatedImport, chunk) {
+ if (chunk.importedBindings[importId]) {
+ chunk.importedBindings[updatedImport] = chunk.importedBindings[importId];
+ if (updatedImport !== importId) {
+ delete chunk.importedBindings[importId];
+ }
+ }
+ var importIndex = chunk.imports.indexOf(importId);
+ if (~importIndex) {
+ chunk.imports[importIndex] = updatedImport;
+ }
+ };
+ ImportUpdater.prototype.saveAndGetUpdatedImportPath = function (assetId, _a) {
+ var bundleOutDir = _a.bundleOutDir, moduleRoot = _a.moduleRoot, chunk = _a.chunk;
+ var assetOutput = this.resolveOutputPath(bundleOutDir, assetId, moduleRoot);
+ var updatedImport = path
+ .relative(path.dirname(path.resolve(bundleOutDir, chunk.fileName)), assetOutput)
+ .replace(/\\/g, "/");
+ this._pluginContext.stylesToEmit[assetId].output = path.relative(path.resolve(bundleOutDir), assetOutput);
+ if (this.shouldAddPrefixCurrentDir(updatedImport) &&
+ !updatedImport.startsWith("./") &&
+ !updatedImport.startsWith("../") &&
+ !updatedImport.match(/^[a-zA-Z]:/)) {
+ updatedImport = "./" + updatedImport;
+ }
+ return updatedImport;
+ };
+ ImportUpdater.prototype.shouldAddPrefixCurrentDir = function (updatedImport) {
+ var skip = this._outputOptions.skipCurrentFolderPart;
+ return !skip || (skip instanceof RegExp && !skip.test(updatedImport));
+ };
+ ImportUpdater.prototype.resolveOutputPath = function (bundleOutDir, assetId, moduleRoot) {
+ var _a = this._outputOptions, outputPath = _a.outputPath, outputDir = _a.outputDir, outputExt = _a.outputExt;
+ var newPath = undefined;
+ if (typeof outputPath === "function") {
+ newPath = outputPath(assetId);
+ assertLocation(bundleOutDir, newPath);
+ }
+ else if (typeof outputPath === "string") {
+ newPath = path.resolve(bundleOutDir, outputDir, outputPath !== "keep" ? outputPath : path.relative(moduleRoot, assetId));
+ assertLocation(bundleOutDir, newPath);
+ }
+ else {
+ throw new Error(createErrorMessage("Invalid outputPath option value!"));
+ }
+ return newPath.replace(/\.s[ca]ss$/, outputExt);
+ };
+ return ImportUpdater;
+}());
+
+var ensureStylesInfo = function (stylesMap, importer, resolvedId) {
+ stylesMap[resolvedId] = stylesMap[resolvedId] || { importers: [], watchList: [] };
+ stylesMap[resolvedId].importers.push(importer);
+ return stylesMap[resolvedId];
+};
+var ensureCodeAndWatchList = function (filePath, stylesInfo, isWatch, compilerOptions) {
+ return __awaiter(void 0, void 0, void 0, function () {
+ var outWatchList, _a, _b, css, map;
+ return __generator(this, function (_c) {
+ switch (_c.label) {
+ case 0:
+ outWatchList = [];
+ if (!filePath.endsWith(".css")) return [3 /*break*/, 2];
+ _a = stylesInfo;
+ return [4 /*yield*/, readFile(filePath, "utf8")];
+ case 1:
+ _a.css = _c.sent();
+ return [3 /*break*/, 4];
+ case 2: return [4 /*yield*/, compileSass(filePath, isWatch ? outWatchList : undefined, compilerOptions)];
+ case 3:
+ _b = _c.sent(), css = _b.css, map = _b.map;
+ stylesInfo.css = css;
+ stylesInfo.map = map;
+ _c.label = 4;
+ case 4:
+ outWatchList.push(filePath);
+ stylesInfo.watchList = outWatchList.map(function (watchFile) { return path.resolve(watchFile.replace(FILE_URL_PREFIX, "")); });
+ return [2 /*return*/];
+ }
+ });
+ });
+};
+function keepCssImports(_a) {
+ if (_a === void 0) { _a = {}; }
+ var _b = _a.outputExt, outputExt = _b === void 0 ? ".css" : _b, _c = _a.outputPath, outputPath = _c === void 0 ? "keep" : _c, _d = _a.skipCurrentFolderPart, skipCurrentFolderPart = _d === void 0 ? false : _d, _e = _a.includeRegexp, includeRegexp = _e === void 0 ? /\.(?:s[ca]|c)ss$/ : _e, sass = _a.sass, postProcessor = _a.postProcessor, sassOptions = _a.sassOptions, options = __rest(_a, ["outputExt", "outputPath", "skipCurrentFolderPart", "includeRegexp", "sass", "postProcessor", "sassOptions"]);
+ var stylesOutputOptions = {
+ outputPath: outputPath,
+ outputExt: outputExt,
+ outputDir: options.outputDir ? path.resolve(options.outputDir) : "./",
+ skipCurrentFolderPart: skipCurrentFolderPart,
+ };
+ var context = {
+ allStyleImports: [],
+ modulesWithCss: new Set(),
+ stylesToEmit: {},
+ };
+ var importUpdater = new ImportUpdater(context, stylesOutputOptions);
+ var loadPaths = options.includePaths || ["node_modules/"];
+ loadPaths.push(process.cwd());
+ loadPaths = loadPaths.filter(function (v, i, a) { return a.indexOf(v) === i; });
+ var compilerOptions = {
+ outputExt: outputExt,
+ sass: sass,
+ postProcessor: typeof postProcessor === "function"
+ ? function (css, map) { return postProcessor(css, map, context.stylesToEmit); }
+ : undefined,
+ loadPaths: loadPaths,
+ sourceMap: !!options.sourceMap,
+ sassOptions: sassOptions,
+ };
+ return {
+ name: PLUGIN_NAME,
+ resolveId: function (source, importer, resolveOptions) {
+ return __awaiter(this, void 0, void 0, function () {
+ var _a, custom, _b, _c, _d, _e, _f, alreadyResolving, resolved, styleInfo;
+ var _g, _h;
+ var _this = this;
+ return __generator(this, function (_j) {
+ switch (_j.label) {
+ case 0:
+ if (!importer || !includeRegexp.test(source) || /\0/.test(source)) {
+ return [2 /*return*/, null];
+ }
+ _a = resolveOptions.custom, custom = _a === void 0 ? {} : _a;
+ _b = custom, _c = PLUGIN_NAME, _d = _b[_c], _e = _d === void 0 ? {} : _d, _f = _e.resolving, alreadyResolving = _f === void 0 ? false : _f;
+ if (alreadyResolving) {
+ return [2 /*return*/, null];
+ }
+ return [4 /*yield*/, this.resolve(source, importer, __assign(__assign({ skipSelf: true }, resolveOptions), { custom: __assign(__assign({}, custom), (_g = {}, _g[PLUGIN_NAME] = __assign(__assign({}, custom[PLUGIN_NAME]), { resolving: true }), _g)) }))];
+ case 1:
+ resolved = _j.sent();
+ if (!resolved || resolved.external) {
+ return [2 /*return*/, resolved];
+ }
+ context.modulesWithCss.add(importer);
+ styleInfo = ensureStylesInfo(context.stylesToEmit, importer, resolved.id);
+ return [4 /*yield*/, ensureCodeAndWatchList(resolved.id, styleInfo, this.meta.watchMode, compilerOptions)];
+ case 2:
+ _j.sent();
+ styleInfo.watchList.forEach(function (watchFile) {
+ _this.addWatchFile(watchFile);
+ });
+ return [2 /*return*/, {
+ id: importUpdater.getMagicId(resolved.id),
+ meta: (_h = {}, _h[PLUGIN_NAME] = { sourceId: resolved.id }, _h),
+ external: true,
+ }];
+ }
+ });
+ });
+ },
+ buildStart: function () {
+ var _this = this;
+ // Every rebuild will refresh watcher, so we need to reattach
+ if (this.meta.watchMode) {
+ var allWatched_1 = this.getWatchFiles();
+ Object.values(context.stylesToEmit).forEach(function (styleInfo) {
+ return styleInfo.watchList.forEach(function (watchFile) {
+ if (!allWatched_1.find(function (watched) { return path.normalize(watched) === path.normalize(watchFile); })) {
+ _this.addWatchFile(watchFile);
+ }
+ });
+ });
+ }
+ },
+ watchChange: function (id) {
+ return __awaiter(this, void 0, void 0, function () {
+ var resolvedId, filesToUpdate;
+ var _this = this;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ resolvedId = path.resolve(id);
+ filesToUpdate = Object.entries(context.stylesToEmit).filter(function (_a) {
+ var styleInfo = _a[1];
+ return styleInfo.watchList.includes(resolvedId);
+ });
+ return [4 /*yield*/, Promise.all(filesToUpdate.map(function (_a) {
+ var fileName = _a[0], styleInfo = _a[1];
+ return ensureCodeAndWatchList(fileName, styleInfo, _this.meta.watchMode, compilerOptions);
+ }))];
+ case 1:
+ _a.sent();
+ return [2 /*return*/];
+ }
+ });
+ });
+ },
+ renderChunk: function (code, chunk, outputOptions) {
+ var bundleOutDir = path.resolve(outputOptions.dir || path.dirname(outputOptions.file));
+ if (code && chunk.modules && Object.keys(chunk.modules).some(function (m) { return context.modulesWithCss.has(m); })) {
+ var moduleRoot = outputOptions.preserveModulesRoot || process.cwd();
+ return importUpdater.updateImports(code, chunk, bundleOutDir, moduleRoot);
+ }
+ return null;
+ },
+ generateBundle: function (_, __, isWrite) {
+ if (!isWrite) {
+ return;
+ }
+ assertDuplicates(context.stylesToEmit);
+ for (var file in context.stylesToEmit) {
+ var stylesInfo = context.stylesToEmit[file];
+ var fileName = stylesInfo.output;
+ var source = file.endsWith(".css")
+ ? stylesInfo.css
+ : ensureSourceMap(stylesInfo, options.sourceMap || (sassOptions === null || sassOptions === void 0 ? void 0 : sassOptions.sourceMap), fileName, this.emitFile);
+ this.emitFile({
+ type: "asset",
+ fileName: fileName,
+ source: source,
+ });
+ }
+ },
+ };
+}
+
+export { keepCssImports as default };
diff --git a/build/esm/rollup-plugin-keep-css-imports/dist/types.d.ts b/build/esm/rollup-plugin-keep-css-imports/dist/types.d.ts
new file mode 100644
index 00000000..3680d628
--- /dev/null
+++ b/build/esm/rollup-plugin-keep-css-imports/dist/types.d.ts
@@ -0,0 +1,110 @@
+import { type CompilationOptions, PostCssCompatible } from "./compileSass";
+import type { Options as SassOptions } from "sass";
+export type KeepCssImportsOptions = OutputOptions & InputOptions & Extensions;
+export type StyleRefInfo = {
+ /**
+ * Collection of files with reference to the current file
+ */
+ importers: string[];
+ /**
+ * List of files which are used to render the current file
+ */
+ watchList: string[];
+ /**
+ * Emit path
+ */
+ output?: string;
+ /**
+ * Processed CSS content to emit
+ */
+ css?: string | Uint8Array;
+ /**
+ * Processed CSS content map to emit
+ */
+ map?: string | Uint8Array;
+};
+export type StylesMap = Record;
+interface Extensions {
+ /**
+ * Customised SASS (SCSS) processor. If not provided plugin will try to
+ * import locally installed `sass` if required
+ */
+ sass?: CompilationOptions["sass"];
+ /**
+ * An optional object that allows to provide additional options for the
+ * SASS compiler.
+ */
+ sassOptions?: SassOptions<"async">;
+ /**
+ * Specifies the list of include paths for SASS to search when resolving imports.
+ *
+ * Default: `["node_modules/"]`
+ */
+ includePaths?: string[];
+ /**
+ * An optional function that allows you to perform additional processing on the
+ * generated CSS, such as applying PostCSS plugins.
+ */
+ postProcessor?: (css: string, map: string, stylesMap: StylesMap) => Promise;
+}
+type OutputPath = string | "keep" | ((assetId: string) => string);
+export interface OutputOptions {
+ /**
+ * Specifies the file extension for the output CSS files.
+ *
+ * Default: `".css"`
+ */
+ outputExt?: string;
+ /**
+ * Specifies the output directory for the generated CSS files.
+ * Relative to Rollup output folder.
+ *
+ * Default: `"./"`
+ */
+ outputDir?: string;
+ /**
+ * Specifies the output path relative to `outputDir` for the generated CSS
+ * files.
+ * The default value, "keep", preserves the original file paths. It is also
+ * possible to provide a custom function to generate output paths based on
+ * the input file.
+ *
+ * Default: `"keep"`
+ */
+ outputPath?: OutputPath;
+ /**
+ * Specifies whether to generate source maps for the compiled CSS.
+ * Use `"inline"` to inline source maps into CSS files.
+ *
+ * Default: `false`
+ */
+ sourceMap?: boolean | "inline";
+ /**
+ * By default CSS paths will be prefixed with current folder mark `./`.
+ * To avoid this for CSS files use `true` or specify RegExp filter.
+ *
+ * If RegExp filter matches `./` won't be added to the path.
+ * This option may be helpful if you have some issues with external
+ * modules imports from `node_modules`
+ *
+ * Default: `false`
+ */
+ skipCurrentFolderPart?: boolean | RegExp;
+}
+interface InputOptions {
+ /**
+ * Regular expression to test if an import should be processed by this plugin
+ *
+ * Default: `/\.(?:s[ca]|c)ss$/`
+ */
+ includeRegexp?: RegExp;
+}
+export interface KeepCssImportsPluginContext {
+ allStyleImports: string[];
+ modulesWithCss: Set;
+ stylesToEmit: StylesMap;
+}
+export {};
diff --git a/build/esm/rollup-plugin-keep-css-imports/package.json b/build/esm/rollup-plugin-keep-css-imports/package.json
new file mode 100644
index 00000000..5cca1b9f
--- /dev/null
+++ b/build/esm/rollup-plugin-keep-css-imports/package.json
@@ -0,0 +1,74 @@
+{
+ "name": "rollup-plugin-keep-css-imports",
+ "version": "1.0.0",
+ "description": "Rollup plugin that allows to maintain the original structure of style imports without altering them during the bundling process",
+ "main": "dist/index.cjs",
+ "module": "dist/index.mjs",
+ "types": "dist/index.d.ts",
+ "exports": {
+ ".": {
+ "import": {
+ "types": "./dist/index.d.ts",
+ "default": "./dist/index.mjs"
+ },
+ "require": {
+ "types": "./dist/index.d.ts",
+ "default": "./dist/index.cjs"
+ }
+ }
+ },
+ "files": [
+ "dist",
+ "README.md",
+ "LICENSE"
+ ],
+ "keywords": [
+ "rollup",
+ "rollup-plugin",
+ "css-modules",
+ "sass",
+ "scss",
+ "keep",
+ "preserve",
+ "imports"
+ ],
+ "homepage": "https://github.com/SLTKA/rollup-plugin-keep-css-imports",
+ "author": "Alexandr Yeskov",
+ "license": "MIT",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/SLTKA/rollup-plugin-keep-css-imports"
+ },
+ "bugs": {
+ "url": "https://github.com/SLTKA/rollup-plugin-keep-css-imports/issues"
+ },
+ "scripts": {
+ "prebuild": "rimraf -rf dist/",
+ "build": "rollup -c",
+ "test": "mocha",
+ "pretest": "yarn build"
+ },
+ "devDependencies": {
+ "@rollup/plugin-typescript": "^11.1.6",
+ "@types/mocha": "^10.0.6",
+ "@types/node": "^20.11.24",
+ "@typescript-eslint/eslint-plugin": "^7.1.1",
+ "@typescript-eslint/parser": "^7.1.1",
+ "eslint": "^8.57.0",
+ "eslint-config-prettier": "^9.1.0",
+ "eslint-plugin-mocha": "^10.2.0",
+ "eslint-plugin-prettier": "^5.1.3",
+ "mocha": "^10.2.0",
+ "prettier": "^3.2.4",
+ "rimraf": "^5.0.5",
+ "rollup": "^4.9.5",
+ "rollup-plugin-dts": "^6.1.0",
+ "sass": "^1.70.0",
+ "ts-node": "^10.9.2",
+ "typescript": "^5.3.3",
+ "typescript-eslint": "^7.1.1"
+ },
+ "dependencies": {
+ "magic-string": "^0.30.5"
+ }
+}
diff --git a/build/esm/rollup-types.config.mjs b/build/esm/rollup-types.config.mjs
new file mode 100644
index 00000000..5043188b
--- /dev/null
+++ b/build/esm/rollup-types.config.mjs
@@ -0,0 +1,47 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ *--------------------------------------------------------------------------------------------*/
+
+// @ts-check
+
+import nodeResolve from '@rollup/plugin-node-resolve';
+import { join } from 'path';
+import { defineConfig } from 'rollup';
+import { dts } from "rollup-plugin-dts";
+import { dtsDeprecationWarning, mapModuleId } from '../shared.mjs';
+
+const root = join(import.meta.dirname, '../../');
+
+export default defineConfig({
+ input: {
+ entry: join(root, './src/editor/editor.main.ts'),
+ editorApi: join(root, './src/editor/editor.api.ts'),
+ },
+ output: {
+ dir: join(root, './out/monaco-editor/esm'),
+ format: 'es',
+ preserveModules: false,
+ entryFileNames: function (chunkInfo) {
+ const moduleId = chunkInfo.facadeModuleId;
+ if (moduleId) {
+ const m = mapModuleId(moduleId, '.d.ts');
+ if (m !== undefined) {
+ return m;
+ }
+ }
+ return '[name].d.ts';
+ },
+ },
+ external: [/.*\.css/],
+ plugins: [
+ nodeResolve(),
+ dts({
+ compilerOptions: {
+ stripInternal: true,
+ },
+ includeExternal: ['monaco-editor-core', '@vscode/monaco-lsp-client']
+ }),
+ dtsDeprecationWarning(f => f.endsWith('editor.api.d.ts')),
+ ],
+});
diff --git a/build/esm/rollup-url-to-module-plugin/index.mjs b/build/esm/rollup-url-to-module-plugin/index.mjs
new file mode 100644
index 00000000..8a0168bd
--- /dev/null
+++ b/build/esm/rollup-url-to-module-plugin/index.mjs
@@ -0,0 +1,63 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ *--------------------------------------------------------------------------------------------*/
+
+/**
+ * @type {() => import('rollup').Plugin}
+*/
+export function urlToEsmPlugin() {
+ return {
+ name: 'import-meta-url',
+ async transform(code, id) {
+ if (this.environment?.mode === 'dev') {
+ return;
+ }
+
+ // Look for `new URL(..., import.meta.url)` patterns.
+ const regex = /new\s+URL\s*\(\s*(['"`])(.*?)\1\s*,\s*import\.meta\.url\s*\)?/g;
+
+ let match;
+ let modified = false;
+ let result = code;
+ let offset = 0;
+
+ while ((match = regex.exec(code)) !== null) {
+ let path = match[2];
+
+ if (!path.startsWith('.') && !path.startsWith('/')) {
+ path = `./${path}`;
+ }
+ const resolved = await this.resolve(path, id);
+
+ if (!resolved) {
+ continue;
+ }
+
+ // Add the file as an entry point
+ const refId = this.emitFile({
+ type: 'chunk',
+ id: resolved.id,
+ });
+
+ const start = match.index;
+ const end = start + match[0].length;
+
+ const replacement = `import.meta.ROLLUP_FILE_URL_OBJ_${refId}`;
+
+ result = result.slice(0, start + offset) + replacement + result.slice(end + offset);
+ offset += replacement.length - (end - start);
+ modified = true;
+ }
+
+ if (!modified) {
+ return null;
+ }
+
+ return {
+ code: result,
+ map: null
+ };
+ }
+ };
+}
diff --git a/build/esm/rollup.config.mjs b/build/esm/rollup.config.mjs
new file mode 100644
index 00000000..37b08bd5
--- /dev/null
+++ b/build/esm/rollup.config.mjs
@@ -0,0 +1,86 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ *--------------------------------------------------------------------------------------------*/
+
+// @ts-check
+
+import { join, relative } from 'path';
+import { defineConfig } from 'rollup';
+import esbuild from 'rollup-plugin-esbuild';
+//import { urlToEsmPlugin } from '../rollup-url-to-module-plugin/index.mjs';
+import del from 'rollup-plugin-delete';
+import keepCssImports from './rollup-plugin-keep-css-imports/dist/index.mjs';
+import nodeResolve from '@rollup/plugin-node-resolve';
+import { urlToEsmPlugin } from './rollup-url-to-module-plugin/index.mjs';
+import { getNlsEntryPoints, mapModuleId } from '../shared.mjs';
+import { readFileSync } from 'fs';
+
+
+const root = join(import.meta.dirname, '../../');
+const outDir = join(root, './out/monaco-editor/esm');
+
+export default defineConfig({
+ input: {
+ entry: join(root, './src/editor/editor.main.ts'),
+ editorAll: join(root, './src/editor/editor.all.ts'),
+ edcoreMain: join(root, './src/editor/edcore.main.ts'),
+ editorApi: join(root, './src/editor/editor.api.ts'),
+ editorWorker: join(root, './src/editor/editor.worker.ts'),
+ ...getNlsEntryPoints(),
+ },
+
+ output: {
+ dir: outDir,
+ format: 'es',
+
+ entryFileNames: function (chunkInfo) {
+ const moduleId = chunkInfo.facadeModuleId;
+ if (moduleId) {
+ const r = mapModuleId(moduleId, '.js');
+ if (r !== undefined) {
+ return r;
+ }
+ }
+ return '[name].js';
+ },
+ preserveModules: true,
+ },
+
+
+ plugins: [
+ del({ targets: outDir, force: true }),
+
+ {
+ name: 'copy-codicon-font',
+ generateBundle() {
+ this.emitFile({
+ type: 'asset',
+ fileName: 'vs/base/browser/ui/codicons/codicon/codicon.ttf',
+ source: readFileSync(join(root, 'node_modules/monaco-editor-core/esm/vs/base/browser/ui/codicons/codicon/codicon.ttf'))
+ });
+ }
+ },
+
+ urlToEsmPlugin(),
+ esbuild(),
+
+ keepCssImports({
+ /**
+ * @param {string} assetId
+ */
+ outputPath: (assetId) => {
+ const r = mapModuleId(assetId, '.css');
+ if (r !== undefined) {
+ return join(outDir, r);
+ }
+ const relativePath = join(outDir, relative(root, assetId));
+ return relativePath.replace(/(\.s[ca]ss)$/, ".min$1")
+ },
+ }),
+ nodeResolve({
+ dedupe: ['monaco-editor-core', '@vscode/monaco-lsp-client'],
+ browser: true,
+ }),
+ ],
+});
diff --git a/build/fillers/vscode-nls.ts b/build/fillers/vscode-nls.ts
deleted file mode 100644
index 38f7b334..00000000
--- a/build/fillers/vscode-nls.ts
+++ /dev/null
@@ -1,46 +0,0 @@
-/*---------------------------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Licensed under the MIT License. See License.txt in the project root for license information.
- *--------------------------------------------------------------------------------------------*/
-
-export interface Options {
- locale?: string;
- cacheLanguageResolution?: boolean;
-}
-export interface LocalizeInfo {
- key: string;
- comment: string[];
-}
-export interface LocalizeFunc {
- (info: LocalizeInfo, message: string, ...args: any[]): string;
- (key: string, message: string, ...args: any[]): string;
-}
-export interface LoadFunc {
- (file?: string): LocalizeFunc;
-}
-
-function format(message: string, args: any[]): string {
- let result: string;
-
- if (args.length === 0) {
- result = message;
- } else {
- result = message.replace(/\{(\d+)\}/g, (match, rest) => {
- let index = rest[0];
- return typeof args[index] !== 'undefined' ? args[index] : match;
- });
- }
- return result;
-}
-
-function localize(key: string | LocalizeInfo, message: string, ...args: any[]): string {
- return format(message, args);
-}
-
-export function loadMessageBundle(file?: string): LocalizeFunc {
- return localize;
-}
-
-export function config(opt?: Options | string): LoadFunc {
- return loadMessageBundle;
-}
diff --git a/build/fs.ts b/build/fs.ts
index 1fc659a2..83189b8f 100644
--- a/build/fs.ts
+++ b/build/fs.ts
@@ -23,25 +23,12 @@ export function ensureDir(dirname: string) {
if (!existingDirCache.has(dir)) {
try {
fs.mkdirSync(dir);
- } catch (err) {}
+ } catch (err) { }
existingDirCache.add(dir);
}
});
}
-/**
- * Copy a file.
- */
-export function copyFile(_source: string, _destination: string) {
- const source = path.join(REPO_ROOT, _source);
- const destination = path.join(REPO_ROOT, _destination);
-
- ensureDir(path.dirname(destination));
- fs.writeFileSync(destination, fs.readFileSync(source));
-
- console.log(`Copied ${_source} to ${_destination}`);
-}
-
/**
* Remove a directory and all its contents.
*/
diff --git a/build/releaseMetadata.ts b/build/releaseMetadata.ts
index 17a530ff..d25ceb76 100644
--- a/build/releaseMetadata.ts
+++ b/build/releaseMetadata.ts
@@ -103,7 +103,7 @@ function getAdvancedLanguages(): Promise<
}
}
-export function generateMetadata() {
+export function generateEsmMetadataJsAndDTs() {
return Promise.all([getBasicLanguages(), getAdvancedLanguages()]).then(
([basicLanguages, advancedLanguages]) => {
basicLanguages.sort((a, b) => strcmp(a.entry, b.entry));
diff --git a/build/shared.mjs b/build/shared.mjs
new file mode 100644
index 00000000..dc471455
--- /dev/null
+++ b/build/shared.mjs
@@ -0,0 +1,96 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ *--------------------------------------------------------------------------------------------*/
+
+// @ts-check
+
+import { dirname, join } from 'path';
+import { fileURLToPath } from 'url';
+import { readdirSync } from 'fs';
+
+/**
+ * @param {string} filePath
+ * @param {string} newExt
+ */
+export function changeExt(filePath, newExt) {
+ const idx = filePath.lastIndexOf('.');
+ if (idx === -1) {
+ return filePath + newExt;
+ } else {
+ return filePath.substring(0, idx) + newExt;
+ }
+}
+
+export function getNlsEntryPoints() {
+ const nlsDir = dirname(fileURLToPath(import.meta.resolve('monaco-editor-core/esm/nls.messages.en.js')));
+ const nlsFiles = readdirSync(nlsDir)
+ .filter(file => file.startsWith('nls.messages.') && file.endsWith('.js'))
+ .reduce((acc, file) => {
+ // @ts-ignore
+ acc[file] = join(nlsDir, file);
+ return acc;
+ }, {});
+ return nlsFiles;
+}
+
+const root = join(import.meta.dirname, '../');
+
+const mappedPaths = {
+ [join(root, 'node_modules/monaco-editor-core/esm/')]: '.',
+ [join(root, 'node_modules/')]: 'external/',
+ [join(root, 'monaco-lsp-client/')]: 'external/monaco-lsp-client/',
+ [join(root, 'src/')]: 'vs/',
+};
+
+/**
+ * @param {string} moduleId
+ * @param {string} newExt (with leading .)
+ * @returns {string | undefined}
+ */
+export function mapModuleId(moduleId, newExt) {
+ for (const [key, val] of Object.entries(mappedPaths)) {
+ if (moduleId.startsWith(key)) {
+ const relativePath = moduleId.substring(key.length);
+ return changeExt(join(val, relativePath), newExt);
+ }
+ }
+ return undefined;
+}
+
+/**
+ * @param {(moduleId: string) => boolean} [filter]
+ * @return {import('rollup').Plugin}
+ */
+export function dtsDeprecationWarning(filter) {
+ return {
+ name: 'add-dts-deprecation-warning',
+ generateBundle(options, bundle) {
+ for (const fileName in bundle) {
+ if (filter && !filter(fileName)) {
+ continue;
+ }
+ const file = bundle[fileName];
+ if (file.type === 'chunk' && fileName.endsWith('.d.ts')) {
+ let content = file.code.toString();
+ content = content + `
+declare namespace languages {
+ /** @deprecated Use the new top level "css" namespace instead. */
+ export const css: { deprecated: true };
+
+ /** @deprecated Use the new top level "html" namespace instead. */
+ export const html: { deprecated: true };
+
+ /** @deprecated Use the new top level "json" namespace instead. */
+ export const json: { deprecated: true };
+
+ /** @deprecated Use the new top level "typescript" namespace instead. */
+ export const typescript: { deprecated: true };
+}
+`;
+ file.code = content;
+ }
+ }
+ }
+ };
+}
diff --git a/build/utils.ts b/build/utils.ts
index b4a90bb3..8a11841c 100644
--- a/build/utils.ts
+++ b/build/utils.ts
@@ -5,181 +5,11 @@
import * as fs from 'fs';
import * as path from 'path';
-import * as cp from 'child_process';
-import * as esbuild from 'esbuild';
import * as glob from 'glob';
import { ensureDir } from './fs';
export const REPO_ROOT = path.join(__dirname, '../');
-/**
- * Launch the typescript compiler synchronously over a project.
- */
-export function runTsc(_projectPath: string) {
- const projectPath = path.join(REPO_ROOT, _projectPath);
- console.log(`Launching compiler at ${_projectPath}...`);
- const res = cp.spawnSync(
- process.execPath,
- [path.join(__dirname, '../node_modules/typescript/lib/tsc.js'), '-p', projectPath],
- { stdio: 'inherit' }
- );
- console.log(`Compiled ${_projectPath}`);
- if (res.status !== 0) {
- process.exit(res.status);
- }
-}
-
-/**
- * Launch prettier on a specific file.
- */
-export function prettier(_filePath: string) {
- const filePath = path.join(REPO_ROOT, _filePath);
- cp.spawnSync(
- process.execPath,
- [path.join(__dirname, '../node_modules/prettier/bin-prettier.js'), '--write', filePath],
- { stdio: 'inherit' }
- );
-
- console.log(`Ran prettier over ${_filePath}`);
-}
-
-/**
- * Transform an external .d.ts file to an internal .d.ts file
- */
-export function massageAndCopyDts(source: string, destination: string, namespace: string) {
- const absoluteSource = path.join(REPO_ROOT, source);
- const absoluteDestination = path.join(REPO_ROOT, destination);
-
- const lines = fs
- .readFileSync(absoluteSource)
- .toString()
- .split(/\r\n|\r|\n/);
-
- let result = [
- `/*---------------------------------------------------------------------------------------------`,
- ` * Copyright (c) Microsoft Corporation. All rights reserved.`,
- ` * Licensed under the MIT License. See License.txt in the project root for license information.`,
- ` *--------------------------------------------------------------------------------------------*/`,
- ``,
- `declare namespace ${namespace} {`
- ];
- for (let line of lines) {
- if (/^import/.test(line)) {
- continue;
- }
- if (line === 'export {};') {
- continue;
- }
- line = line.replace(/ /g, '\t');
- line = line.replace(/declare /g, '');
- if (line.length > 0) {
- line = `\t${line}`;
- result.push(line);
- }
- }
- result.push(`}`);
- result.push(``);
-
- ensureDir(path.dirname(absoluteDestination));
- fs.writeFileSync(absoluteDestination, result.join('\n'));
-
- prettier(destination);
-}
-
-export function build(options: import('esbuild').BuildOptions) {
- esbuild.build(options).then((result) => {
- if (result.errors.length > 0) {
- console.error(result.errors);
- }
- if (result.warnings.length > 0) {
- console.error(result.warnings);
- }
- });
-}
-
-export function buildESM(options: { base: string; entryPoints: string[]; external: string[] }) {
- build({
- entryPoints: options.entryPoints,
- bundle: true,
- target: 'esnext',
- format: 'esm',
- drop: ['debugger'],
- banner: {
- js: bundledFileHeader
- },
- external: options.external,
- outbase: `src/${options.base}`,
- outdir: `out/languages/bundled/esm/vs/${options.base}/`
- });
-}
-
-function getGitVersion() {
- const git = path.join(REPO_ROOT, '.git');
- const headPath = path.join(git, 'HEAD');
- let head;
-
- try {
- head = fs.readFileSync(headPath, 'utf8').trim();
- } catch (e) {
- return void 0;
- }
-
- if (/^[0-9a-f]{40}$/i.test(head)) {
- return head;
- }
-
- const refMatch = /^ref: (.*)$/.exec(head);
-
- if (!refMatch) {
- return void 0;
- }
-
- const ref = refMatch[1];
- const refPath = path.join(git, ref);
-
- try {
- return fs.readFileSync(refPath, 'utf8').trim();
- } catch (e) {
- // noop
- }
-
- const packedRefsPath = path.join(git, 'packed-refs');
- let refsRaw;
-
- try {
- refsRaw = fs.readFileSync(packedRefsPath, 'utf8').trim();
- } catch (e) {
- return void 0;
- }
-
- const refsRegex = /^([0-9a-f]{40})\s+(.+)$/gm;
- let refsMatch;
- const refs = {};
-
- while ((refsMatch = refsRegex.exec(refsRaw))) {
- refs[refsMatch[2]] = refsMatch[1];
- }
-
- return refs[ref];
-}
-
-export const bundledFileHeader = (() => {
- const sha1 = getGitVersion();
- const semver = require('../package.json').version;
- const headerVersion = semver + '(' + sha1 + ')';
-
- const BUNDLED_FILE_HEADER = [
- '/*!-----------------------------------------------------------------------------',
- ' * Copyright (c) Microsoft Corporation. All rights reserved.',
- ' * Version: ' + headerVersion,
- ' * Released under the MIT license',
- ' * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt',
- ' *-----------------------------------------------------------------------------*/',
- ''
- ].join('\n');
-
- return BUNDLED_FILE_HEADER;
-})();
export interface IFile {
path: string;
diff --git a/monaco-lsp-client/package-lock.json b/monaco-lsp-client/package-lock.json
index 03240878..2f47ccae 100644
--- a/monaco-lsp-client/package-lock.json
+++ b/monaco-lsp-client/package-lock.json
@@ -21,22 +21,6 @@
"monaco-editor-core": "^0.54.0-dev-20250929"
}
},
- "../../../hediet/typed-json-rpc/json-rpc": {
- "name": "@hediet/json-rpc",
- "version": "0.5.0",
- "license": "MIT",
- "devDependencies": {
- "typescript": "^5.8.3"
- }
- },
- "../../../hediet/typed-json-rpc/json-rpc-browser": {
- "name": "@hediet/json-rpc-browser",
- "version": "0.5.1",
- "license": "MIT",
- "dependencies": {
- "@hediet/json-rpc": "^0.5.0"
- }
- },
"../../../hediet/typed-json-rpc/json-rpc-node": {
"name": "@hediet/json-rpc-node",
"version": "0.5.0",
@@ -55,16 +39,6 @@
"source-map-support": "^0.5.12"
}
},
- "../../../hediet/typed-json-rpc/json-rpc-websocket": {
- "name": "@hediet/json-rpc-websocket",
- "version": "0.5.1",
- "license": "MIT",
- "dependencies": {
- "@hediet/json-rpc": "^0.5.0",
- "@types/ws": "^6.0.4",
- "isomorphic-ws": "^5.0.0"
- }
- },
"../../hediet/typed-json-rpc/json-rpc-browser": {
"extraneous": true
},
@@ -170,16 +144,30 @@
}
},
"node_modules/@hediet/json-rpc": {
- "resolved": "../../../hediet/typed-json-rpc/json-rpc",
- "link": true
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@hediet/json-rpc/-/json-rpc-0.5.0.tgz",
+ "integrity": "sha512-SApO7NbKJztClcznEqg46ZGQzO2v3Q3gVIuRVC9QE/m75J/5AipJdclxEXgT++7j4x4LI2JjEpf2xhi67Ngu9A==",
+ "license": "MIT"
},
"node_modules/@hediet/json-rpc-browser": {
- "resolved": "../../../hediet/typed-json-rpc/json-rpc-browser",
- "link": true
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/@hediet/json-rpc-browser/-/json-rpc-browser-0.5.1.tgz",
+ "integrity": "sha512-iR+WrTdM7WozRJ/MElfeT8CmH2f911Y8P6xfcj5RCfywp7kjnnqKPUV/VnNnzToxRZUO8WAfJtLvmhDBsSjMtA==",
+ "license": "MIT",
+ "dependencies": {
+ "@hediet/json-rpc": "^0.5.0"
+ }
},
"node_modules/@hediet/json-rpc-websocket": {
- "resolved": "../../../hediet/typed-json-rpc/json-rpc-websocket",
- "link": true
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/@hediet/json-rpc-websocket/-/json-rpc-websocket-0.5.1.tgz",
+ "integrity": "sha512-1H9UjKyR00ZjwcReQdzTxyEoZKaEubeOvxBVrwHGo4n9HeQt6SvQgtef+1AJ9MT7/sV2Qfe0VWarYivx6BWgIA==",
+ "license": "MIT",
+ "dependencies": {
+ "@hediet/json-rpc": "^0.5.0",
+ "@types/ws": "^6.0.4",
+ "isomorphic-ws": "^5.0.0"
+ }
},
"node_modules/@jridgewell/gen-mapping": {
"version": "0.3.13",
@@ -888,6 +876,24 @@
"license": "MIT",
"peer": true
},
+ "node_modules/@types/node": {
+ "version": "24.10.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.0.tgz",
+ "integrity": "sha512-qzQZRBqkFsYyaSWXuEHc2WR9c0a0CXwiE5FWUvn7ZM+vdy1uZLfCunD38UzhuB7YN/J11ndbDBcTmOdxJo9Q7A==",
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~7.16.0"
+ }
+ },
+ "node_modules/@types/ws": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/@types/ws/-/ws-6.0.4.tgz",
+ "integrity": "sha512-PpPrX7SZW9re6+Ha8ojZG4Se8AZXgf0GK6zmfqEuCsY49LFDNXO3SByp44X3dFEqtB73lkCDAdUazhAjVPiNwg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
"node_modules/ansis": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/ansis/-/ansis-4.2.0.tgz",
@@ -1176,6 +1182,15 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/isomorphic-ws": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz",
+ "integrity": "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==",
+ "license": "MIT",
+ "peerDependencies": {
+ "ws": "*"
+ }
+ },
"node_modules/jsesc": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
@@ -1547,6 +1562,12 @@
"license": "0BSD",
"optional": true
},
+ "node_modules/undici-types": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz",
+ "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==",
+ "license": "MIT"
+ },
"node_modules/unicorn-magic": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz",
@@ -1559,6 +1580,28 @@
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
+ },
+ "node_modules/ws": {
+ "version": "8.18.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
+ "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
}
}
}
diff --git a/package-lock.json b/package-lock.json
index ed65ffae..529d4cee 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,16 +1,16 @@
{
"name": "monaco-editor",
- "version": "0.54.0",
+ "version": "0.55.1",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "monaco-editor",
- "version": "0.54.0",
+ "version": "0.55.1",
"hasInstallScript": true,
"license": "MIT",
"devDependencies": {
- "@playwright/test": "^1.53.2",
+ "@playwright/test": "^1.56.1",
"@rollup/plugin-alias": "^5.1.1",
"@rollup/plugin-node-resolve": "^16.0.2",
"@types/mocha": "^10.0.10",
@@ -30,9 +30,10 @@
"jsdom": "^19.0.0",
"jsonc-parser": "^3.0.0",
"mocha": "^11.7.4",
- "monaco-editor-core": "^0.55.0-dev-20251008",
+ "monaco-editor-core": "^0.55.0-rc",
"parcel": "^2.7.0",
"pin-github-action": "^1.8.0",
+ "postcss-url": "^10.1.3",
"prettier": "^2.5.1",
"pretty-quick": "^3.1.3",
"requirejs": "^2.3.7",
@@ -46,8 +47,8 @@
"style-loader": "^3.3.1",
"terser": "^5.14.2",
"ts-node": "^10.6.0",
- "typescript": "^5.4.5",
- "vite": "^7.1.5",
+ "typescript": "^5.9.3",
+ "vite": "^7.1.11",
"vscode-css-languageservice": "6.2.14",
"vscode-html-languageservice": "5.2.0",
"vscode-json-languageservice": "5.3.11",
@@ -2461,13 +2462,12 @@
}
},
"node_modules/@playwright/test": {
- "version": "1.54.2",
- "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.54.2.tgz",
- "integrity": "sha512-A+znathYxPf+72riFd1r1ovOLqsIIB0jKIoPjyK2kqEIe30/6jF6BC7QNluHuwUmsD2tv1XZVugN8GqfTMOxsA==",
+ "version": "1.56.1",
+ "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.56.1.tgz",
+ "integrity": "sha512-vSMYtL/zOcFpvJCW71Q/OEGQb7KYBPAdKh35WNSkaZA75JlAO8ED8UN6GUNTm3drWomcbcqRPFqQbLae8yBTdg==",
"dev": true,
- "license": "Apache-2.0",
"dependencies": {
- "playwright": "1.54.2"
+ "playwright": "1.56.1"
},
"bin": {
"playwright": "cli.js"
@@ -4272,6 +4272,13 @@
"integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
"dev": true
},
+ "node_modules/cuint": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz",
+ "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/data-urls": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.1.tgz",
@@ -4486,11 +4493,22 @@
}
},
"node_modules/dompurify": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.7.tgz",
- "integrity": "sha512-VaTstWtsneJY8xzy7DekmYWEOZcmzIe3Qb3zPd4STve1OBTa+e+WmS1ITQec1fZYXI3HCsOZZiSMpG6oxoWMWQ==",
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.7.tgz",
+ "integrity": "sha512-WhL/YuveyGXJaerVlMYGWhvQswa7myDG17P7Vu65EWC05o8vfeNbvNf4d/BOvH99+ZW+LlQsc1GDKMa1vNK6dw==",
"dev": true,
- "license": "(MPL-2.0 OR Apache-2.0)"
+ "license": "(MPL-2.0 OR Apache-2.0)",
+ "optionalDependencies": {
+ "@types/trusted-types": "^2.0.7"
+ }
+ },
+ "node_modules/dompurify/node_modules/@types/trusted-types": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
+ "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true
},
"node_modules/domutils": {
"version": "2.8.0",
@@ -6223,6 +6241,32 @@
"@jridgewell/sourcemap-codec": "^1.5.5"
}
},
+ "node_modules/make-dir": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "semver": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/make-dir/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
"node_modules/make-error": {
"version": "1.3.6",
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
@@ -6308,6 +6352,19 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
+ "node_modules/mime": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz",
+ "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
"node_modules/mime-db": {
"version": "1.51.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz",
@@ -6466,13 +6523,13 @@
}
},
"node_modules/monaco-editor-core": {
- "version": "0.55.0-dev-20251009",
- "resolved": "https://registry.npmjs.org/monaco-editor-core/-/monaco-editor-core-0.55.0-dev-20251009.tgz",
- "integrity": "sha512-QyipMtg/vrAXaurn2BpAehWAKsMYlX1bfMxLBjGAI2DJJ/6isZ8+jpPcrOgIPa8Lu4AKrv4vQ0qYGtgSqp0R7Q==",
+ "version": "0.55.0-rc",
+ "resolved": "https://registry.npmjs.org/monaco-editor-core/-/monaco-editor-core-0.55.0-rc.tgz",
+ "integrity": "sha512-LZAAUGilhXX+u+JNxqBABDFyvIVjW6Gmn3EkP0ztdvNxvP6+voiRm2/ZMLokSUGrdOeCZXA2nM6w1xjKkrqNjQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "dompurify": "3.1.7",
+ "dompurify": "3.2.7",
"marked": "14.0.0"
}
},
@@ -6979,13 +7036,12 @@
}
},
"node_modules/playwright": {
- "version": "1.54.2",
- "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.54.2.tgz",
- "integrity": "sha512-Hu/BMoA1NAdRUuulyvQC0pEqZ4vQbGfn8f7wPXcnqQmM+zct9UliKxsIkLNmz/ku7LElUNqmaiv1TG/aL5ACsw==",
+ "version": "1.56.1",
+ "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.56.1.tgz",
+ "integrity": "sha512-aFi5B0WovBHTEvpM3DzXTUaeN6eN0qWnTkKx4NQaH4Wvcmc153PdaY2UBdSYKaGYw+UyWXSVyxDUg5DoPEttjw==",
"dev": true,
- "license": "Apache-2.0",
"dependencies": {
- "playwright-core": "1.54.2"
+ "playwright-core": "1.56.1"
},
"bin": {
"playwright": "cli.js"
@@ -6998,11 +7054,10 @@
}
},
"node_modules/playwright-core": {
- "version": "1.54.2",
- "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.54.2.tgz",
- "integrity": "sha512-n5r4HFbMmWsB4twG7tJLDN9gmBUeSPcsBZiWSE4DnYz9mJMAFqr2ID7+eGC9kpEnxExJ1epttwR59LEWCk8mtA==",
+ "version": "1.56.1",
+ "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.56.1.tgz",
+ "integrity": "sha512-hutraynyn31F+Bifme+Ps9Vq59hKuUCz7H1kDOcBs+2oGguKkWTU50bBWrtz34OUWmIwpBTWDxaRPXrIXkgvmQ==",
"dev": true,
- "license": "Apache-2.0",
"bin": {
"playwright-core": "cli.js"
},
@@ -7134,6 +7189,38 @@
"node": ">=4"
}
},
+ "node_modules/postcss-url": {
+ "version": "10.1.3",
+ "resolved": "https://registry.npmjs.org/postcss-url/-/postcss-url-10.1.3.tgz",
+ "integrity": "sha512-FUzyxfI5l2tKmXdYc6VTu3TWZsInayEKPbiyW+P6vmmIrrb4I6CGX0BFoewgYHLK+oIL5FECEK02REYRpBvUCw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "make-dir": "~3.1.0",
+ "mime": "~2.5.2",
+ "minimatch": "~3.0.4",
+ "xxhashjs": "~0.2.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "postcss": "^8.0.0"
+ }
+ },
+ "node_modules/postcss-url/node_modules/minimatch": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz",
+ "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/postcss-value-parser": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
@@ -8395,10 +8482,11 @@
}
},
"node_modules/typescript": {
- "version": "5.4.5",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
- "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
+ "version": "5.9.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
+ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
"dev": true,
+ "license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -8550,11 +8638,10 @@
"dev": true
},
"node_modules/vite": {
- "version": "7.1.5",
- "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.5.tgz",
- "integrity": "sha512-4cKBO9wR75r0BeIWWWId9XK9Lj6La5X846Zw9dFfzMRw38IlTk2iCcUt6hsyiDRcPidc55ZParFYDXi0nXOeLQ==",
+ "version": "7.1.11",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.11.tgz",
+ "integrity": "sha512-uzcxnSDVjAopEUjljkWh8EIrg6tlzrjFUfMcR1EVsRDGwf/ccef0qQPRyOrROwhrTDaApueq+ja+KLPlzR/zdg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"esbuild": "^0.25.0",
"fdir": "^6.5.0",
@@ -8967,6 +9054,16 @@
"integrity": "sha512-/eyHVRJQCirEkSZ1agRSCwriMhwlyUcFkXD5TPVSLP+IPzjsqMVzZwdoczLp1SoQU0R3dxz1RpIK+4YNQbCVOA==",
"dev": true
},
+ "node_modules/xxhashjs": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz",
+ "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cuint": "^0.2.2"
+ }
+ },
"node_modules/y18n": {
"version": "5.0.8",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
@@ -10604,12 +10701,12 @@
"optional": true
},
"@playwright/test": {
- "version": "1.54.2",
- "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.54.2.tgz",
- "integrity": "sha512-A+znathYxPf+72riFd1r1ovOLqsIIB0jKIoPjyK2kqEIe30/6jF6BC7QNluHuwUmsD2tv1XZVugN8GqfTMOxsA==",
+ "version": "1.56.1",
+ "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.56.1.tgz",
+ "integrity": "sha512-vSMYtL/zOcFpvJCW71Q/OEGQb7KYBPAdKh35WNSkaZA75JlAO8ED8UN6GUNTm3drWomcbcqRPFqQbLae8yBTdg==",
"dev": true,
"requires": {
- "playwright": "1.54.2"
+ "playwright": "1.56.1"
}
},
"@rolldown/binding-android-arm64": {
@@ -11855,6 +11952,12 @@
}
}
},
+ "cuint": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz",
+ "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==",
+ "dev": true
+ },
"data-urls": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.1.tgz",
@@ -11999,10 +12102,22 @@
}
},
"dompurify": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.7.tgz",
- "integrity": "sha512-VaTstWtsneJY8xzy7DekmYWEOZcmzIe3Qb3zPd4STve1OBTa+e+WmS1ITQec1fZYXI3HCsOZZiSMpG6oxoWMWQ==",
- "dev": true
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.7.tgz",
+ "integrity": "sha512-WhL/YuveyGXJaerVlMYGWhvQswa7myDG17P7Vu65EWC05o8vfeNbvNf4d/BOvH99+ZW+LlQsc1GDKMa1vNK6dw==",
+ "dev": true,
+ "requires": {
+ "@types/trusted-types": "^2.0.7"
+ },
+ "dependencies": {
+ "@types/trusted-types": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
+ "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
+ "dev": true,
+ "optional": true
+ }
+ }
},
"domutils": {
"version": "2.8.0",
@@ -13123,6 +13238,23 @@
"@jridgewell/sourcemap-codec": "^1.5.5"
}
},
+ "make-dir": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+ "dev": true,
+ "requires": {
+ "semver": "^6.0.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true
+ }
+ }
+ },
"make-error": {
"version": "1.3.6",
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
@@ -13182,6 +13314,12 @@
}
}
},
+ "mime": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz",
+ "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==",
+ "dev": true
+ },
"mime-db": {
"version": "1.51.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz",
@@ -13297,12 +13435,12 @@
}
},
"monaco-editor-core": {
- "version": "0.55.0-dev-20251009",
- "resolved": "https://registry.npmjs.org/monaco-editor-core/-/monaco-editor-core-0.55.0-dev-20251009.tgz",
- "integrity": "sha512-QyipMtg/vrAXaurn2BpAehWAKsMYlX1bfMxLBjGAI2DJJ/6isZ8+jpPcrOgIPa8Lu4AKrv4vQ0qYGtgSqp0R7Q==",
+ "version": "0.55.0-rc",
+ "resolved": "https://registry.npmjs.org/monaco-editor-core/-/monaco-editor-core-0.55.0-rc.tgz",
+ "integrity": "sha512-LZAAUGilhXX+u+JNxqBABDFyvIVjW6Gmn3EkP0ztdvNxvP6+voiRm2/ZMLokSUGrdOeCZXA2nM6w1xjKkrqNjQ==",
"dev": true,
"requires": {
- "dompurify": "3.1.7",
+ "dompurify": "3.2.7",
"marked": "14.0.0"
}
},
@@ -13678,19 +13816,19 @@
}
},
"playwright": {
- "version": "1.54.2",
- "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.54.2.tgz",
- "integrity": "sha512-Hu/BMoA1NAdRUuulyvQC0pEqZ4vQbGfn8f7wPXcnqQmM+zct9UliKxsIkLNmz/ku7LElUNqmaiv1TG/aL5ACsw==",
+ "version": "1.56.1",
+ "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.56.1.tgz",
+ "integrity": "sha512-aFi5B0WovBHTEvpM3DzXTUaeN6eN0qWnTkKx4NQaH4Wvcmc153PdaY2UBdSYKaGYw+UyWXSVyxDUg5DoPEttjw==",
"dev": true,
"requires": {
"fsevents": "2.3.2",
- "playwright-core": "1.54.2"
+ "playwright-core": "1.56.1"
}
},
"playwright-core": {
- "version": "1.54.2",
- "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.54.2.tgz",
- "integrity": "sha512-n5r4HFbMmWsB4twG7tJLDN9gmBUeSPcsBZiWSE4DnYz9mJMAFqr2ID7+eGC9kpEnxExJ1epttwR59LEWCk8mtA==",
+ "version": "1.56.1",
+ "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.56.1.tgz",
+ "integrity": "sha512-hutraynyn31F+Bifme+Ps9Vq59hKuUCz7H1kDOcBs+2oGguKkWTU50bBWrtz34OUWmIwpBTWDxaRPXrIXkgvmQ==",
"dev": true
},
"portfinder": {
@@ -13780,6 +13918,29 @@
"util-deprecate": "^1.0.2"
}
},
+ "postcss-url": {
+ "version": "10.1.3",
+ "resolved": "https://registry.npmjs.org/postcss-url/-/postcss-url-10.1.3.tgz",
+ "integrity": "sha512-FUzyxfI5l2tKmXdYc6VTu3TWZsInayEKPbiyW+P6vmmIrrb4I6CGX0BFoewgYHLK+oIL5FECEK02REYRpBvUCw==",
+ "dev": true,
+ "requires": {
+ "make-dir": "~3.1.0",
+ "mime": "~2.5.2",
+ "minimatch": "~3.0.4",
+ "xxhashjs": "~0.2.2"
+ },
+ "dependencies": {
+ "minimatch": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz",
+ "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ }
+ }
+ },
"postcss-value-parser": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
@@ -14587,9 +14748,9 @@
"dev": true
},
"typescript": {
- "version": "5.4.5",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
- "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
+ "version": "5.9.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
+ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
"dev": true
},
"undici-types": {
@@ -14695,9 +14856,9 @@
"dev": true
},
"vite": {
- "version": "7.1.5",
- "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.5.tgz",
- "integrity": "sha512-4cKBO9wR75r0BeIWWWId9XK9Lj6La5X846Zw9dFfzMRw38IlTk2iCcUt6hsyiDRcPidc55ZParFYDXi0nXOeLQ==",
+ "version": "7.1.11",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.11.tgz",
+ "integrity": "sha512-uzcxnSDVjAopEUjljkWh8EIrg6tlzrjFUfMcR1EVsRDGwf/ccef0qQPRyOrROwhrTDaApueq+ja+KLPlzR/zdg==",
"dev": true,
"requires": {
"esbuild": "^0.25.0",
@@ -14957,6 +15118,15 @@
"integrity": "sha512-/eyHVRJQCirEkSZ1agRSCwriMhwlyUcFkXD5TPVSLP+IPzjsqMVzZwdoczLp1SoQU0R3dxz1RpIK+4YNQbCVOA==",
"dev": true
},
+ "xxhashjs": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz",
+ "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==",
+ "dev": true,
+ "requires": {
+ "cuint": "^0.2.2"
+ }
+ },
"y18n": {
"version": "5.0.8",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
diff --git a/package.json b/package.json
index ed49ebfe..f04c68bc 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "monaco-editor",
- "version": "0.54.0",
- "vscodeRef": "484fdf69b8509c1c9370d913b32e9f6d3a68cc99",
+ "version": "0.55.1",
+ "vscodeRef": "86f5a62f058e3905f74a9fa65d04b2f3b533408e",
"private": true,
"description": "A browser based code editor",
"homepage": "https://github.com/microsoft/monaco-editor",
@@ -28,26 +28,35 @@
"deps-all-install": "ts-node ./build/npm/installAll",
"update-actions": "pin-github-action ./.github/workflows/website.yml",
"watch": "tsc -w -p ./src",
- "build-languages": "ts-node ./build/build-languages",
+ "build-all": "npm run build-lsp && npm run build-monaco-editor && npm run package-for-smoketest",
+ "build": "npm run build-lsp && npm run build-monaco-editor",
"build-monaco-editor": "ts-node ./build/build-monaco-editor",
- "build-lsp": "cd monaco-lsp-client && npm install && npm run build",
- "build": "npm run build-lsp && npm run build-languages && npm run build-monaco-editor"
+ "build-lsp": "cd monaco-lsp-client && npm install && npm run build"
},
- "typings": "./esm/vs/editor/editor.api.d.ts",
+ "typings": "./esm/vs/editor/editor.main.d.ts",
+ "main": "./min/vs/editor/editor.main.js",
"module": "./esm/vs/editor/editor.main.js",
+ "exports": {
+ ".": {
+ "types": "./esm/vs/editor/editor.main.d.ts",
+ "import": "./esm/vs/editor/editor.main.js",
+ "require": "./min/vs/editor/editor.main.js"
+ },
+ "./*": "./*"
+ },
"repository": {
"type": "git",
"url": "https://github.com/microsoft/monaco-editor"
},
"devDependencies": {
- "@vscode/monaco-lsp-client": "file:./monaco-lsp-client",
- "@playwright/test": "^1.53.2",
+ "@playwright/test": "^1.56.1",
"@rollup/plugin-alias": "^5.1.1",
"@rollup/plugin-node-resolve": "^16.0.2",
"@types/mocha": "^10.0.10",
"@types/shelljs": "^0.8.11",
"@types/trusted-types": "^1.0.6",
"@typescript/vfs": "^1.3.5",
+ "@vscode/monaco-lsp-client": "file:./monaco-lsp-client",
"chai": "^4.3.6",
"clean-css": "^5.2.4",
"css-loader": "^6.7.1",
@@ -60,9 +69,10 @@
"jsdom": "^19.0.0",
"jsonc-parser": "^3.0.0",
"mocha": "^11.7.4",
- "monaco-editor-core": "^0.55.0-dev-20251008",
+ "monaco-editor-core": "^0.55.0-rc",
"parcel": "^2.7.0",
"pin-github-action": "^1.8.0",
+ "postcss-url": "^10.1.3",
"prettier": "^2.5.1",
"pretty-quick": "^3.1.3",
"requirejs": "^2.3.7",
@@ -76,8 +86,8 @@
"style-loader": "^3.3.1",
"terser": "^5.14.2",
"ts-node": "^10.6.0",
- "typescript": "^5.4.5",
- "vite": "^7.1.5",
+ "typescript": "^5.9.3",
+ "vite": "^7.1.11",
"vscode-css-languageservice": "6.2.14",
"vscode-html-languageservice": "5.2.0",
"vscode-json-languageservice": "5.3.11",
diff --git a/samples/browser-esm-vite-react/package-lock.json b/samples/browser-esm-vite-react/package-lock.json
index ae765e8a..40c5a89d 100644
--- a/samples/browser-esm-vite-react/package-lock.json
+++ b/samples/browser-esm-vite-react/package-lock.json
@@ -13,7 +13,7 @@
"react": "^17.0.2",
"react-dom": "^17.0.2",
"typescript": "^5.4.5",
- "vite": "^2.9.17"
+ "vite": "^5.4.21"
}
},
"node_modules/@ampproject/remapping": {
@@ -418,6 +418,374 @@
"node": ">=6.9.0"
}
},
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
+ "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
+ "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
+ "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
+ "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
+ "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
+ "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
+ "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
+ "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
+ "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
+ "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
+ "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
+ "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
+ "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
+ "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
+ "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
+ "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
+ "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
+ "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
+ "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
+ "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
+ "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
+ "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
+ "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
"node_modules/@jridgewell/gen-mapping": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
@@ -479,6 +847,298 @@
"node": ">= 8.0.0"
}
},
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.4.tgz",
+ "integrity": "sha512-BTm2qKNnWIQ5auf4deoetINJm2JzvihvGb9R6K/ETwKLql/Bb3Eg2H1FBp1gUb4YGbydMA3jcmQTR73q7J+GAA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.4.tgz",
+ "integrity": "sha512-P9LDQiC5vpgGFgz7GSM6dKPCiqR3XYN1WwJKA4/BUVDjHpYsf3iBEmVz62uyq20NGYbiGPR5cNHI7T1HqxNs2w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.4.tgz",
+ "integrity": "sha512-QRWSW+bVccAvZF6cbNZBJwAehmvG9NwfWHwMy4GbWi/BQIA/laTIktebT2ipVjNncqE6GLPxOok5hsECgAxGZg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.4.tgz",
+ "integrity": "sha512-hZgP05pResAkRJxL1b+7yxCnXPGsXU0fG9Yfd6dUaoGk+FhdPKCJ5L1Sumyxn8kvw8Qi5PvQ8ulenUbRjzeCTw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-arm64": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.4.tgz",
+ "integrity": "sha512-xmc30VshuBNUd58Xk4TKAEcRZHaXlV+tCxIXELiE9sQuK3kG8ZFgSPi57UBJt8/ogfhAF5Oz4ZSUBN77weM+mQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-x64": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.4.tgz",
+ "integrity": "sha512-WdSLpZFjOEqNZGmHflxyifolwAiZmDQzuOzIq9L27ButpCVpD7KzTRtEG1I0wMPFyiyUdOO+4t8GvrnBLQSwpw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.4.tgz",
+ "integrity": "sha512-xRiOu9Of1FZ4SxVbB0iEDXc4ddIcjCv2aj03dmW8UrZIW7aIQ9jVJdLBIhxBI+MaTnGAKyvMwPwQnoOEvP7FgQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.4.tgz",
+ "integrity": "sha512-FbhM2p9TJAmEIEhIgzR4soUcsW49e9veAQCziwbR+XWB2zqJ12b4i/+hel9yLiD8pLncDH4fKIPIbt5238341Q==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.4.tgz",
+ "integrity": "sha512-4n4gVwhPHR9q/g8lKCyz0yuaD0MvDf7dV4f9tHt0C73Mp8h38UCtSCSE6R9iBlTbXlmA8CjpsZoujhszefqueg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.4.tgz",
+ "integrity": "sha512-u0n17nGA0nvi/11gcZKsjkLj1QIpAuPFQbR48Subo7SmZJnGxDpspyw2kbpuoQnyK+9pwf3pAoEXerJs/8Mi9g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loong64-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.4.tgz",
+ "integrity": "sha512-0G2c2lpYtbTuXo8KEJkDkClE/+/2AFPdPAbmaHoE870foRFs4pBrDehilMcrSScrN/fB/1HTaWO4bqw+ewBzMQ==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-ppc64-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.4.tgz",
+ "integrity": "sha512-teSACug1GyZHmPDv14VNbvZFX779UqWTsd7KtTM9JIZRDI5NUwYSIS30kzI8m06gOPB//jtpqlhmraQ68b5X2g==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.4.tgz",
+ "integrity": "sha512-/MOEW3aHjjs1p4Pw1Xk4+3egRevx8Ji9N6HUIA1Ifh8Q+cg9dremvFCUbOX2Zebz80BwJIgCBUemjqhU5XI5Eg==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-musl": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.4.tgz",
+ "integrity": "sha512-1HHmsRyh845QDpEWzOFtMCph5Ts+9+yllCrREuBR/vg2RogAQGGBRC8lDPrPOMnrdOJ+mt1WLMOC2Kao/UwcvA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.4.tgz",
+ "integrity": "sha512-seoeZp4L/6D1MUyjWkOMRU6/iLmCU2EjbMTyAG4oIOs1/I82Y5lTeaxW0KBfkUdHAWN7j25bpkt0rjnOgAcQcA==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.4.tgz",
+ "integrity": "sha512-Wi6AXf0k0L7E2gteNsNHUs7UMwCIhsCTs6+tqQ5GPwVRWMaflqGec4Sd8n6+FNFDw9vGcReqk2KzBDhCa1DLYg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.4.tgz",
+ "integrity": "sha512-dtBZYjDmCQ9hW+WgEkaffvRRCKm767wWhxsFW3Lw86VXz/uJRuD438/XvbZT//B96Vs8oTA8Q4A0AfHbrxP9zw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-openharmony-arm64": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.4.tgz",
+ "integrity": "sha512-1ox+GqgRWqaB1RnyZXL8PD6E5f7YyRUJYnCqKpNzxzP0TkaUh112NDrR9Tt+C8rJ4x5G9Mk8PQR3o7Ku2RKqKA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "openharmony"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.4.tgz",
+ "integrity": "sha512-8GKr640PdFNXwzIE0IrkMWUNUomILLkfeHjXBi/nUvFlpZP+FA8BKGKpacjW6OUUHaNI6sUURxR2U2g78FOHWQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.4.tgz",
+ "integrity": "sha512-AIy/jdJ7WtJ/F6EcfOb2GjR9UweO0n43jNObQMb6oGxkYTfLcnN7vYYpG+CN3lLxrQkzWnMOoNSHTW54pgbVxw==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.4.tgz",
+ "integrity": "sha512-UF9KfsH9yEam0UjTwAgdK0anlQ7c8/pWPU2yVjyWcF1I1thABt6WXE47cI71pGiZ8wGvxohBoLnxM04L/wj8mQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.4.tgz",
+ "integrity": "sha512-bf9PtUa0u8IXDVxzRToFQKsNCRz9qLYfR/MpECxl4mRoWYjAeFjgxj1XdZr2M/GNVpT05p+LgQOHopYDlUu6/w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
+ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
+ "dev": true
+ },
"node_modules/@types/prop-types": {
"version": "15.7.4",
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz",
@@ -655,9 +1315,9 @@
"dev": true
},
"node_modules/esbuild": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.28.tgz",
- "integrity": "sha512-YLNprkCcMVKQ5sekmCKEQ3Obu/L7s6+iij38xNKyBeSmSsTWur4Ky/9zB3XIGT8SCJITG/bZwAR2l7YOAXch4Q==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
+ "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
"dev": true,
"hasInstallScript": true,
"bin": {
@@ -667,346 +1327,29 @@
"node": ">=12"
},
"optionalDependencies": {
- "esbuild-android-64": "0.14.28",
- "esbuild-android-arm64": "0.14.28",
- "esbuild-darwin-64": "0.14.28",
- "esbuild-darwin-arm64": "0.14.28",
- "esbuild-freebsd-64": "0.14.28",
- "esbuild-freebsd-arm64": "0.14.28",
- "esbuild-linux-32": "0.14.28",
- "esbuild-linux-64": "0.14.28",
- "esbuild-linux-arm": "0.14.28",
- "esbuild-linux-arm64": "0.14.28",
- "esbuild-linux-mips64le": "0.14.28",
- "esbuild-linux-ppc64le": "0.14.28",
- "esbuild-linux-riscv64": "0.14.28",
- "esbuild-linux-s390x": "0.14.28",
- "esbuild-netbsd-64": "0.14.28",
- "esbuild-openbsd-64": "0.14.28",
- "esbuild-sunos-64": "0.14.28",
- "esbuild-windows-32": "0.14.28",
- "esbuild-windows-64": "0.14.28",
- "esbuild-windows-arm64": "0.14.28"
- }
- },
- "node_modules/esbuild-android-64": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.28.tgz",
- "integrity": "sha512-A52C3zq+9tNwCqZ+4kVLBxnk/WnrYM8P2+QNvNE9B6d2OVPs214lp3g6UyO+dKDhUdefhfPCuwkP8j2A/+szNA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-android-arm64": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.28.tgz",
- "integrity": "sha512-sm0fDEGElZhMC3HLZeECI2juE4aG7uPfMBMqNUhy9CeX399Pz8rC6e78OXMXInGjSdEAwQmCOHmfsP7uv3Q8rA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-darwin-64": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.28.tgz",
- "integrity": "sha512-nzDd7mQ44FvsFHtOafZdBgn3Li5SMsnMnoz1J2MM37xJmR3wGNTFph88KypjHgWqwbxCI7MXS1U+sN4qDeeW6Q==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-darwin-arm64": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.28.tgz",
- "integrity": "sha512-XEq/bLR/glsUl+uGrBimQzOVs/CmwI833fXUhP9xrLI3IJ+rKyrZ5IA8u+1crOEf1LoTn8tV+hInmX6rGjbScw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-freebsd-64": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.28.tgz",
- "integrity": "sha512-rTKLgUj/HEcPeE5XZ7IZwWpFx7IWMfprN7QRk/TUJE1s1Ipb58esboIesUpjirJz/BwrgHq+FDG9ChAI8dZAtQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-freebsd-arm64": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.28.tgz",
- "integrity": "sha512-sBffxD1UMOsB7aWMoExmipycjcy3HJGwmqE4GQZUTZvdiH4GhjgUiVdtPyt7kSCdL40JqnWQJ4b1l8Y51oCF4Q==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-32": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.28.tgz",
- "integrity": "sha512-+Wxidh3fBEQ9kHcCsD4etlBTMb1n6QY2uXv3rFhVn88CY/JP782MhA57/ipLMY4kOLeSKEuFGN4rtjHuhmRMig==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-64": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.28.tgz",
- "integrity": "sha512-7+xgsC4LvR6cnzaBdiljNnPDjbkwzahogN+S9uy9AoYw7ZjPnnXc6sjQAVCbqGb7MEgrWdpa6u/Tao79i4lWxg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-arm": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.28.tgz",
- "integrity": "sha512-L5isjmlLbh9E0WVllXiVETbScgMbth/+XkXQii1WwgO1RvLIfaGrVFz8d2n6EH/ImtgYxPYGx+OcvIKQBc91Rg==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-arm64": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.28.tgz",
- "integrity": "sha512-EjRHgwg+kgXABzyoPGPOPg4d5wZqRnZ/ZAxBDzLY+i6DS8OUfTSlZHWIOZzU4XF7125WxRBg9ULbrFJBl+57Eg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-mips64le": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.28.tgz",
- "integrity": "sha512-krx9SSg7yfiUKk64EmjefOyiEF6nv2bRE4um/LiTaQ6Y/6FP4UF3/Ou/AxZVyR154uSRq63xejcAsmswXAYRsw==",
- "cpu": [
- "mips64el"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-ppc64le": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.28.tgz",
- "integrity": "sha512-LD0Xxu9g+DNuhsEBV5QuVZ4uKVBMup0xPIruLweuAf9/mHXFnaCuNXUBF5t0DxKl7GQ5MSioKtnb92oMo+QXEw==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-riscv64": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.28.tgz",
- "integrity": "sha512-L/DWfRh2P0vxq4Y+qieSNXKGdMg+e9Qe8jkbN2/8XSGYDTPzO2OcAxSujob4qIh7iSl+cknbXV+BvH0YFR0jbg==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-s390x": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.28.tgz",
- "integrity": "sha512-rrgxmsbmL8QQknWGnAL9bGJRQYLOi2AzXy5OTwfhxnj9eqjo5mSVbJXjgiq5LPUAMQZGdPH5yaNK0obAXS81Zw==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-netbsd-64": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.28.tgz",
- "integrity": "sha512-h8wntIyOR8/xMVVM6TvJxxWKh4AjmLK87IPKpuVi8Pq0kyk0RMA+eo4PFGk5j2XK0D7dj8PcSF5NSlP9kN/j0A==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-openbsd-64": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.28.tgz",
- "integrity": "sha512-HBv18rVapbuDx52/fhZ/c/w6TXyaQAvRxiDDn5Hz/pBcwOs3cdd2WxeIKlWmDoqm2JMx5EVlq4IWgoaRX9mVkw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-sunos-64": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.28.tgz",
- "integrity": "sha512-zlIxePhZxKYheR2vBCgPVvTixgo/ozOfOMoP6RZj8dxzquU1NgeyhjkcRXucbLCtmoNJ+i4PtWwPZTLuDd3bGg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "sunos"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-windows-32": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.28.tgz",
- "integrity": "sha512-am9DIJxXlld1BOAY/VlvBQHMUCPL7S3gB/lnXIY3M4ys0gfuRqPf4EvMwZMzYUbFKBY+/Qb8SRgPRRGhwnJ8Kg==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-windows-64": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.28.tgz",
- "integrity": "sha512-78PhySDnmRZlsPNp/W/5Fim8iivlBQQxfhBFIqR7xwvfDmCFUSByyMKP7LCHgNtb04yNdop8nJJkJaQ8Xnwgiw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-windows-arm64": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.28.tgz",
- "integrity": "sha512-VhXGBTo6HELD8zyHXynV6+L2jWx0zkKnGx4TmEdSBK7UVFACtOyfUqpToG0EtnYyRZ0HESBhzPSVpP781ovmvA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
+ "@esbuild/aix-ppc64": "0.21.5",
+ "@esbuild/android-arm": "0.21.5",
+ "@esbuild/android-arm64": "0.21.5",
+ "@esbuild/android-x64": "0.21.5",
+ "@esbuild/darwin-arm64": "0.21.5",
+ "@esbuild/darwin-x64": "0.21.5",
+ "@esbuild/freebsd-arm64": "0.21.5",
+ "@esbuild/freebsd-x64": "0.21.5",
+ "@esbuild/linux-arm": "0.21.5",
+ "@esbuild/linux-arm64": "0.21.5",
+ "@esbuild/linux-ia32": "0.21.5",
+ "@esbuild/linux-loong64": "0.21.5",
+ "@esbuild/linux-mips64el": "0.21.5",
+ "@esbuild/linux-ppc64": "0.21.5",
+ "@esbuild/linux-riscv64": "0.21.5",
+ "@esbuild/linux-s390x": "0.21.5",
+ "@esbuild/linux-x64": "0.21.5",
+ "@esbuild/netbsd-x64": "0.21.5",
+ "@esbuild/openbsd-x64": "0.21.5",
+ "@esbuild/sunos-x64": "0.21.5",
+ "@esbuild/win32-arm64": "0.21.5",
+ "@esbuild/win32-ia32": "0.21.5",
+ "@esbuild/win32-x64": "0.21.5"
}
},
"node_modules/escalade": {
@@ -1034,9 +1377,9 @@
"dev": true
},
"node_modules/fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
"dev": true,
"hasInstallScript": true,
"optional": true,
@@ -1159,9 +1502,9 @@
"dev": true
},
"node_modules/nanoid": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
- "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
"dev": true,
"funding": [
{
@@ -1198,9 +1541,9 @@
"dev": true
},
"node_modules/picocolors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
"dev": true
},
"node_modules/picomatch": {
@@ -1216,9 +1559,9 @@
}
},
"node_modules/postcss": {
- "version": "8.4.31",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
- "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
+ "version": "8.5.6",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
+ "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
"dev": true,
"funding": [
{
@@ -1235,9 +1578,9 @@
}
],
"dependencies": {
- "nanoid": "^3.3.6",
- "picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
+ "nanoid": "^3.3.11",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
},
"engines": {
"node": "^10 || ^12 || >=14"
@@ -1297,17 +1640,43 @@
}
},
"node_modules/rollup": {
- "version": "2.70.1",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz",
- "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==",
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.4.tgz",
+ "integrity": "sha512-CLEVl+MnPAiKh5pl4dEWSyMTpuflgNQiLGhMv8ezD5W/qP8AKvmYpCOKRRNOh7oRKnauBZ4SyeYkMS+1VSyKwQ==",
"dev": true,
+ "dependencies": {
+ "@types/estree": "1.0.8"
+ },
"bin": {
"rollup": "dist/bin/rollup"
},
"engines": {
- "node": ">=10.0.0"
+ "node": ">=18.0.0",
+ "npm": ">=8.0.0"
},
"optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.52.4",
+ "@rollup/rollup-android-arm64": "4.52.4",
+ "@rollup/rollup-darwin-arm64": "4.52.4",
+ "@rollup/rollup-darwin-x64": "4.52.4",
+ "@rollup/rollup-freebsd-arm64": "4.52.4",
+ "@rollup/rollup-freebsd-x64": "4.52.4",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.52.4",
+ "@rollup/rollup-linux-arm-musleabihf": "4.52.4",
+ "@rollup/rollup-linux-arm64-gnu": "4.52.4",
+ "@rollup/rollup-linux-arm64-musl": "4.52.4",
+ "@rollup/rollup-linux-loong64-gnu": "4.52.4",
+ "@rollup/rollup-linux-ppc64-gnu": "4.52.4",
+ "@rollup/rollup-linux-riscv64-gnu": "4.52.4",
+ "@rollup/rollup-linux-riscv64-musl": "4.52.4",
+ "@rollup/rollup-linux-s390x-gnu": "4.52.4",
+ "@rollup/rollup-linux-x64-gnu": "4.52.4",
+ "@rollup/rollup-linux-x64-musl": "4.52.4",
+ "@rollup/rollup-openharmony-arm64": "4.52.4",
+ "@rollup/rollup-win32-arm64-msvc": "4.52.4",
+ "@rollup/rollup-win32-ia32-msvc": "4.52.4",
+ "@rollup/rollup-win32-x64-gnu": "4.52.4",
+ "@rollup/rollup-win32-x64-msvc": "4.52.4",
"fsevents": "~2.3.2"
}
},
@@ -1337,9 +1706,9 @@
}
},
"node_modules/source-map-js": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
"dev": true,
"engines": {
"node": ">=0.10.0"
@@ -1392,39 +1761,61 @@
}
},
"node_modules/vite": {
- "version": "2.9.17",
- "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.17.tgz",
- "integrity": "sha512-XxcRzra6d7xrKXH66jZUgb+srThoPu+TLJc06GifUyKq9JmjHkc1Numc8ra0h56rju2jfVWw3B3fs5l3OFMvUw==",
+ "version": "5.4.21",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz",
+ "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==",
"dev": true,
"dependencies": {
- "esbuild": "^0.14.27",
- "postcss": "^8.4.13",
- "resolve": "^1.22.0",
- "rollup": ">=2.59.0 <2.78.0"
+ "esbuild": "^0.21.3",
+ "postcss": "^8.4.43",
+ "rollup": "^4.20.0"
},
"bin": {
"vite": "bin/vite.js"
},
"engines": {
- "node": ">=12.2.0"
+ "node": "^18.0.0 || >=20.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
},
"optionalDependencies": {
- "fsevents": "~2.3.2"
+ "fsevents": "~2.3.3"
},
"peerDependencies": {
+ "@types/node": "^18.0.0 || >=20.0.0",
"less": "*",
+ "lightningcss": "^1.21.0",
"sass": "*",
- "stylus": "*"
+ "sass-embedded": "*",
+ "stylus": "*",
+ "sugarss": "*",
+ "terser": "^5.4.0"
},
"peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
"less": {
"optional": true
},
+ "lightningcss": {
+ "optional": true
+ },
"sass": {
"optional": true
},
+ "sass-embedded": {
+ "optional": true
+ },
"stylus": {
"optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
}
}
}
@@ -1720,6 +2111,167 @@
"to-fast-properties": "^2.0.0"
}
},
+ "@esbuild/aix-ppc64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
+ "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/android-arm": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
+ "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/android-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
+ "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/android-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
+ "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/darwin-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
+ "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/darwin-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
+ "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/freebsd-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
+ "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/freebsd-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
+ "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-arm": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
+ "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
+ "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-ia32": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
+ "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-loong64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
+ "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-mips64el": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
+ "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-ppc64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
+ "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-riscv64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
+ "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-s390x": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
+ "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
+ "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/netbsd-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
+ "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/openbsd-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
+ "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/sunos-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
+ "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/win32-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
+ "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/win32-ia32": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
+ "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/win32-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
+ "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
+ "dev": true,
+ "optional": true
+ },
"@jridgewell/gen-mapping": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
@@ -1769,6 +2321,166 @@
"picomatch": "^2.2.2"
}
},
+ "@rollup/rollup-android-arm-eabi": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.4.tgz",
+ "integrity": "sha512-BTm2qKNnWIQ5auf4deoetINJm2JzvihvGb9R6K/ETwKLql/Bb3Eg2H1FBp1gUb4YGbydMA3jcmQTR73q7J+GAA==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-android-arm64": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.4.tgz",
+ "integrity": "sha512-P9LDQiC5vpgGFgz7GSM6dKPCiqR3XYN1WwJKA4/BUVDjHpYsf3iBEmVz62uyq20NGYbiGPR5cNHI7T1HqxNs2w==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-darwin-arm64": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.4.tgz",
+ "integrity": "sha512-QRWSW+bVccAvZF6cbNZBJwAehmvG9NwfWHwMy4GbWi/BQIA/laTIktebT2ipVjNncqE6GLPxOok5hsECgAxGZg==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-darwin-x64": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.4.tgz",
+ "integrity": "sha512-hZgP05pResAkRJxL1b+7yxCnXPGsXU0fG9Yfd6dUaoGk+FhdPKCJ5L1Sumyxn8kvw8Qi5PvQ8ulenUbRjzeCTw==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-freebsd-arm64": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.4.tgz",
+ "integrity": "sha512-xmc30VshuBNUd58Xk4TKAEcRZHaXlV+tCxIXELiE9sQuK3kG8ZFgSPi57UBJt8/ogfhAF5Oz4ZSUBN77weM+mQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-freebsd-x64": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.4.tgz",
+ "integrity": "sha512-WdSLpZFjOEqNZGmHflxyifolwAiZmDQzuOzIq9L27ButpCVpD7KzTRtEG1I0wMPFyiyUdOO+4t8GvrnBLQSwpw==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.4.tgz",
+ "integrity": "sha512-xRiOu9Of1FZ4SxVbB0iEDXc4ddIcjCv2aj03dmW8UrZIW7aIQ9jVJdLBIhxBI+MaTnGAKyvMwPwQnoOEvP7FgQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-arm-musleabihf": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.4.tgz",
+ "integrity": "sha512-FbhM2p9TJAmEIEhIgzR4soUcsW49e9veAQCziwbR+XWB2zqJ12b4i/+hel9yLiD8pLncDH4fKIPIbt5238341Q==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.4.tgz",
+ "integrity": "sha512-4n4gVwhPHR9q/g8lKCyz0yuaD0MvDf7dV4f9tHt0C73Mp8h38UCtSCSE6R9iBlTbXlmA8CjpsZoujhszefqueg==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-arm64-musl": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.4.tgz",
+ "integrity": "sha512-u0n17nGA0nvi/11gcZKsjkLj1QIpAuPFQbR48Subo7SmZJnGxDpspyw2kbpuoQnyK+9pwf3pAoEXerJs/8Mi9g==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-loong64-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.4.tgz",
+ "integrity": "sha512-0G2c2lpYtbTuXo8KEJkDkClE/+/2AFPdPAbmaHoE870foRFs4pBrDehilMcrSScrN/fB/1HTaWO4bqw+ewBzMQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-ppc64-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.4.tgz",
+ "integrity": "sha512-teSACug1GyZHmPDv14VNbvZFX779UqWTsd7KtTM9JIZRDI5NUwYSIS30kzI8m06gOPB//jtpqlhmraQ68b5X2g==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.4.tgz",
+ "integrity": "sha512-/MOEW3aHjjs1p4Pw1Xk4+3egRevx8Ji9N6HUIA1Ifh8Q+cg9dremvFCUbOX2Zebz80BwJIgCBUemjqhU5XI5Eg==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-riscv64-musl": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.4.tgz",
+ "integrity": "sha512-1HHmsRyh845QDpEWzOFtMCph5Ts+9+yllCrREuBR/vg2RogAQGGBRC8lDPrPOMnrdOJ+mt1WLMOC2Kao/UwcvA==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.4.tgz",
+ "integrity": "sha512-seoeZp4L/6D1MUyjWkOMRU6/iLmCU2EjbMTyAG4oIOs1/I82Y5lTeaxW0KBfkUdHAWN7j25bpkt0rjnOgAcQcA==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-x64-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.4.tgz",
+ "integrity": "sha512-Wi6AXf0k0L7E2gteNsNHUs7UMwCIhsCTs6+tqQ5GPwVRWMaflqGec4Sd8n6+FNFDw9vGcReqk2KzBDhCa1DLYg==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-x64-musl": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.4.tgz",
+ "integrity": "sha512-dtBZYjDmCQ9hW+WgEkaffvRRCKm767wWhxsFW3Lw86VXz/uJRuD438/XvbZT//B96Vs8oTA8Q4A0AfHbrxP9zw==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-openharmony-arm64": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.4.tgz",
+ "integrity": "sha512-1ox+GqgRWqaB1RnyZXL8PD6E5f7YyRUJYnCqKpNzxzP0TkaUh112NDrR9Tt+C8rJ4x5G9Mk8PQR3o7Ku2RKqKA==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.4.tgz",
+ "integrity": "sha512-8GKr640PdFNXwzIE0IrkMWUNUomILLkfeHjXBi/nUvFlpZP+FA8BKGKpacjW6OUUHaNI6sUURxR2U2g78FOHWQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.4.tgz",
+ "integrity": "sha512-AIy/jdJ7WtJ/F6EcfOb2GjR9UweO0n43jNObQMb6oGxkYTfLcnN7vYYpG+CN3lLxrQkzWnMOoNSHTW54pgbVxw==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-win32-x64-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.4.tgz",
+ "integrity": "sha512-UF9KfsH9yEam0UjTwAgdK0anlQ7c8/pWPU2yVjyWcF1I1thABt6WXE47cI71pGiZ8wGvxohBoLnxM04L/wj8mQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-win32-x64-msvc": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.4.tgz",
+ "integrity": "sha512-bf9PtUa0u8IXDVxzRToFQKsNCRz9qLYfR/MpECxl4mRoWYjAeFjgxj1XdZr2M/GNVpT05p+LgQOHopYDlUu6/w==",
+ "dev": true,
+ "optional": true
+ },
+ "@types/estree": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
+ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
+ "dev": true
+ },
"@types/prop-types": {
"version": "15.7.4",
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz",
@@ -1902,173 +2614,36 @@
"dev": true
},
"esbuild": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.28.tgz",
- "integrity": "sha512-YLNprkCcMVKQ5sekmCKEQ3Obu/L7s6+iij38xNKyBeSmSsTWur4Ky/9zB3XIGT8SCJITG/bZwAR2l7YOAXch4Q==",
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
+ "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
"dev": true,
"requires": {
- "esbuild-android-64": "0.14.28",
- "esbuild-android-arm64": "0.14.28",
- "esbuild-darwin-64": "0.14.28",
- "esbuild-darwin-arm64": "0.14.28",
- "esbuild-freebsd-64": "0.14.28",
- "esbuild-freebsd-arm64": "0.14.28",
- "esbuild-linux-32": "0.14.28",
- "esbuild-linux-64": "0.14.28",
- "esbuild-linux-arm": "0.14.28",
- "esbuild-linux-arm64": "0.14.28",
- "esbuild-linux-mips64le": "0.14.28",
- "esbuild-linux-ppc64le": "0.14.28",
- "esbuild-linux-riscv64": "0.14.28",
- "esbuild-linux-s390x": "0.14.28",
- "esbuild-netbsd-64": "0.14.28",
- "esbuild-openbsd-64": "0.14.28",
- "esbuild-sunos-64": "0.14.28",
- "esbuild-windows-32": "0.14.28",
- "esbuild-windows-64": "0.14.28",
- "esbuild-windows-arm64": "0.14.28"
+ "@esbuild/aix-ppc64": "0.21.5",
+ "@esbuild/android-arm": "0.21.5",
+ "@esbuild/android-arm64": "0.21.5",
+ "@esbuild/android-x64": "0.21.5",
+ "@esbuild/darwin-arm64": "0.21.5",
+ "@esbuild/darwin-x64": "0.21.5",
+ "@esbuild/freebsd-arm64": "0.21.5",
+ "@esbuild/freebsd-x64": "0.21.5",
+ "@esbuild/linux-arm": "0.21.5",
+ "@esbuild/linux-arm64": "0.21.5",
+ "@esbuild/linux-ia32": "0.21.5",
+ "@esbuild/linux-loong64": "0.21.5",
+ "@esbuild/linux-mips64el": "0.21.5",
+ "@esbuild/linux-ppc64": "0.21.5",
+ "@esbuild/linux-riscv64": "0.21.5",
+ "@esbuild/linux-s390x": "0.21.5",
+ "@esbuild/linux-x64": "0.21.5",
+ "@esbuild/netbsd-x64": "0.21.5",
+ "@esbuild/openbsd-x64": "0.21.5",
+ "@esbuild/sunos-x64": "0.21.5",
+ "@esbuild/win32-arm64": "0.21.5",
+ "@esbuild/win32-ia32": "0.21.5",
+ "@esbuild/win32-x64": "0.21.5"
}
},
- "esbuild-android-64": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.28.tgz",
- "integrity": "sha512-A52C3zq+9tNwCqZ+4kVLBxnk/WnrYM8P2+QNvNE9B6d2OVPs214lp3g6UyO+dKDhUdefhfPCuwkP8j2A/+szNA==",
- "dev": true,
- "optional": true
- },
- "esbuild-android-arm64": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.28.tgz",
- "integrity": "sha512-sm0fDEGElZhMC3HLZeECI2juE4aG7uPfMBMqNUhy9CeX399Pz8rC6e78OXMXInGjSdEAwQmCOHmfsP7uv3Q8rA==",
- "dev": true,
- "optional": true
- },
- "esbuild-darwin-64": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.28.tgz",
- "integrity": "sha512-nzDd7mQ44FvsFHtOafZdBgn3Li5SMsnMnoz1J2MM37xJmR3wGNTFph88KypjHgWqwbxCI7MXS1U+sN4qDeeW6Q==",
- "dev": true,
- "optional": true
- },
- "esbuild-darwin-arm64": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.28.tgz",
- "integrity": "sha512-XEq/bLR/glsUl+uGrBimQzOVs/CmwI833fXUhP9xrLI3IJ+rKyrZ5IA8u+1crOEf1LoTn8tV+hInmX6rGjbScw==",
- "dev": true,
- "optional": true
- },
- "esbuild-freebsd-64": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.28.tgz",
- "integrity": "sha512-rTKLgUj/HEcPeE5XZ7IZwWpFx7IWMfprN7QRk/TUJE1s1Ipb58esboIesUpjirJz/BwrgHq+FDG9ChAI8dZAtQ==",
- "dev": true,
- "optional": true
- },
- "esbuild-freebsd-arm64": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.28.tgz",
- "integrity": "sha512-sBffxD1UMOsB7aWMoExmipycjcy3HJGwmqE4GQZUTZvdiH4GhjgUiVdtPyt7kSCdL40JqnWQJ4b1l8Y51oCF4Q==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-32": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.28.tgz",
- "integrity": "sha512-+Wxidh3fBEQ9kHcCsD4etlBTMb1n6QY2uXv3rFhVn88CY/JP782MhA57/ipLMY4kOLeSKEuFGN4rtjHuhmRMig==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-64": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.28.tgz",
- "integrity": "sha512-7+xgsC4LvR6cnzaBdiljNnPDjbkwzahogN+S9uy9AoYw7ZjPnnXc6sjQAVCbqGb7MEgrWdpa6u/Tao79i4lWxg==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-arm": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.28.tgz",
- "integrity": "sha512-L5isjmlLbh9E0WVllXiVETbScgMbth/+XkXQii1WwgO1RvLIfaGrVFz8d2n6EH/ImtgYxPYGx+OcvIKQBc91Rg==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-arm64": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.28.tgz",
- "integrity": "sha512-EjRHgwg+kgXABzyoPGPOPg4d5wZqRnZ/ZAxBDzLY+i6DS8OUfTSlZHWIOZzU4XF7125WxRBg9ULbrFJBl+57Eg==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-mips64le": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.28.tgz",
- "integrity": "sha512-krx9SSg7yfiUKk64EmjefOyiEF6nv2bRE4um/LiTaQ6Y/6FP4UF3/Ou/AxZVyR154uSRq63xejcAsmswXAYRsw==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-ppc64le": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.28.tgz",
- "integrity": "sha512-LD0Xxu9g+DNuhsEBV5QuVZ4uKVBMup0xPIruLweuAf9/mHXFnaCuNXUBF5t0DxKl7GQ5MSioKtnb92oMo+QXEw==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-riscv64": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.28.tgz",
- "integrity": "sha512-L/DWfRh2P0vxq4Y+qieSNXKGdMg+e9Qe8jkbN2/8XSGYDTPzO2OcAxSujob4qIh7iSl+cknbXV+BvH0YFR0jbg==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-s390x": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.28.tgz",
- "integrity": "sha512-rrgxmsbmL8QQknWGnAL9bGJRQYLOi2AzXy5OTwfhxnj9eqjo5mSVbJXjgiq5LPUAMQZGdPH5yaNK0obAXS81Zw==",
- "dev": true,
- "optional": true
- },
- "esbuild-netbsd-64": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.28.tgz",
- "integrity": "sha512-h8wntIyOR8/xMVVM6TvJxxWKh4AjmLK87IPKpuVi8Pq0kyk0RMA+eo4PFGk5j2XK0D7dj8PcSF5NSlP9kN/j0A==",
- "dev": true,
- "optional": true
- },
- "esbuild-openbsd-64": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.28.tgz",
- "integrity": "sha512-HBv18rVapbuDx52/fhZ/c/w6TXyaQAvRxiDDn5Hz/pBcwOs3cdd2WxeIKlWmDoqm2JMx5EVlq4IWgoaRX9mVkw==",
- "dev": true,
- "optional": true
- },
- "esbuild-sunos-64": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.28.tgz",
- "integrity": "sha512-zlIxePhZxKYheR2vBCgPVvTixgo/ozOfOMoP6RZj8dxzquU1NgeyhjkcRXucbLCtmoNJ+i4PtWwPZTLuDd3bGg==",
- "dev": true,
- "optional": true
- },
- "esbuild-windows-32": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.28.tgz",
- "integrity": "sha512-am9DIJxXlld1BOAY/VlvBQHMUCPL7S3gB/lnXIY3M4ys0gfuRqPf4EvMwZMzYUbFKBY+/Qb8SRgPRRGhwnJ8Kg==",
- "dev": true,
- "optional": true
- },
- "esbuild-windows-64": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.28.tgz",
- "integrity": "sha512-78PhySDnmRZlsPNp/W/5Fim8iivlBQQxfhBFIqR7xwvfDmCFUSByyMKP7LCHgNtb04yNdop8nJJkJaQ8Xnwgiw==",
- "dev": true,
- "optional": true
- },
- "esbuild-windows-arm64": {
- "version": "0.14.28",
- "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.28.tgz",
- "integrity": "sha512-VhXGBTo6HELD8zyHXynV6+L2jWx0zkKnGx4TmEdSBK7UVFACtOyfUqpToG0EtnYyRZ0HESBhzPSVpP781ovmvA==",
- "dev": true,
- "optional": true
- },
"escalade": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
@@ -2088,9 +2663,9 @@
"dev": true
},
"fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
"dev": true,
"optional": true
},
@@ -2176,9 +2751,9 @@
"dev": true
},
"nanoid": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
- "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
"dev": true
},
"node-releases": {
@@ -2200,9 +2775,9 @@
"dev": true
},
"picocolors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
"dev": true
},
"picomatch": {
@@ -2212,14 +2787,14 @@
"dev": true
},
"postcss": {
- "version": "8.4.31",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
- "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
+ "version": "8.5.6",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
+ "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
"dev": true,
"requires": {
- "nanoid": "^3.3.6",
- "picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
+ "nanoid": "^3.3.11",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
}
},
"react": {
@@ -2261,11 +2836,34 @@
}
},
"rollup": {
- "version": "2.70.1",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz",
- "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==",
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.4.tgz",
+ "integrity": "sha512-CLEVl+MnPAiKh5pl4dEWSyMTpuflgNQiLGhMv8ezD5W/qP8AKvmYpCOKRRNOh7oRKnauBZ4SyeYkMS+1VSyKwQ==",
"dev": true,
"requires": {
+ "@rollup/rollup-android-arm-eabi": "4.52.4",
+ "@rollup/rollup-android-arm64": "4.52.4",
+ "@rollup/rollup-darwin-arm64": "4.52.4",
+ "@rollup/rollup-darwin-x64": "4.52.4",
+ "@rollup/rollup-freebsd-arm64": "4.52.4",
+ "@rollup/rollup-freebsd-x64": "4.52.4",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.52.4",
+ "@rollup/rollup-linux-arm-musleabihf": "4.52.4",
+ "@rollup/rollup-linux-arm64-gnu": "4.52.4",
+ "@rollup/rollup-linux-arm64-musl": "4.52.4",
+ "@rollup/rollup-linux-loong64-gnu": "4.52.4",
+ "@rollup/rollup-linux-ppc64-gnu": "4.52.4",
+ "@rollup/rollup-linux-riscv64-gnu": "4.52.4",
+ "@rollup/rollup-linux-riscv64-musl": "4.52.4",
+ "@rollup/rollup-linux-s390x-gnu": "4.52.4",
+ "@rollup/rollup-linux-x64-gnu": "4.52.4",
+ "@rollup/rollup-linux-x64-musl": "4.52.4",
+ "@rollup/rollup-openharmony-arm64": "4.52.4",
+ "@rollup/rollup-win32-arm64-msvc": "4.52.4",
+ "@rollup/rollup-win32-ia32-msvc": "4.52.4",
+ "@rollup/rollup-win32-x64-gnu": "4.52.4",
+ "@rollup/rollup-win32-x64-msvc": "4.52.4",
+ "@types/estree": "1.0.8",
"fsevents": "~2.3.2"
}
},
@@ -2292,9 +2890,9 @@
"dev": true
},
"source-map-js": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
"dev": true
},
"supports-color": {
@@ -2325,16 +2923,15 @@
"dev": true
},
"vite": {
- "version": "2.9.17",
- "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.17.tgz",
- "integrity": "sha512-XxcRzra6d7xrKXH66jZUgb+srThoPu+TLJc06GifUyKq9JmjHkc1Numc8ra0h56rju2jfVWw3B3fs5l3OFMvUw==",
+ "version": "5.4.21",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz",
+ "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==",
"dev": true,
"requires": {
- "esbuild": "^0.14.27",
- "fsevents": "~2.3.2",
- "postcss": "^8.4.13",
- "resolve": "^1.22.0",
- "rollup": ">=2.59.0 <2.78.0"
+ "esbuild": "^0.21.3",
+ "fsevents": "~2.3.3",
+ "postcss": "^8.4.43",
+ "rollup": "^4.20.0"
}
}
}
diff --git a/samples/browser-esm-vite-react/package.json b/samples/browser-esm-vite-react/package.json
index 395a8b8d..4b208d84 100644
--- a/samples/browser-esm-vite-react/package.json
+++ b/samples/browser-esm-vite-react/package.json
@@ -15,6 +15,6 @@
"@types/react-dom": "^17.0.11",
"@vitejs/plugin-react": "^1.1.4",
"typescript": "^5.4.5",
- "vite": "^2.9.17"
+ "vite": "^5.4.21"
}
}
diff --git a/samples/browser-esm-vite/.gitignore b/samples/browser-esm-vite/.gitignore
new file mode 100644
index 00000000..1df32f13
--- /dev/null
+++ b/samples/browser-esm-vite/.gitignore
@@ -0,0 +1,2 @@
+dist
+src/**/*.js
diff --git a/samples/browser-esm-vite/index.html b/samples/browser-esm-vite/index.html
new file mode 100644
index 00000000..a437c4d9
--- /dev/null
+++ b/samples/browser-esm-vite/index.html
@@ -0,0 +1,12 @@
+
+
+
+
+
+ browser-esm-vite
+
+
+
+
+
+
diff --git a/samples/browser-esm-vite/main.ts b/samples/browser-esm-vite/main.ts
new file mode 100644
index 00000000..80c37603
--- /dev/null
+++ b/samples/browser-esm-vite/main.ts
@@ -0,0 +1,13 @@
+import './style.css';
+import * as monaco from '../../src/editor/editor.main';
+
+monaco.languages.register({ id: 'typescript' });
+
+const tm = monaco.editor.createModel(`class Test {}`, 'typescript',
+ monaco.Uri.parse('file:///main.ts'));
+
+const editor = monaco.editor.create(document.getElementById('root')!, {
+ model: tm,
+ language: 'typescript',
+ theme: 'vs-dark',
+});
diff --git a/samples/browser-esm-vite/package-lock.json b/samples/browser-esm-vite/package-lock.json
new file mode 100644
index 00000000..ce2a295a
--- /dev/null
+++ b/samples/browser-esm-vite/package-lock.json
@@ -0,0 +1,1663 @@
+{
+ "name": "browser-esm-vite",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "browser-esm-vite",
+ "devDependencies": {
+ "monaco-editor": "^0.54.0",
+ "typescript": "^5.9.3",
+ "vite": "^7.1.11"
+ }
+ },
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.10.tgz",
+ "integrity": "sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.10.tgz",
+ "integrity": "sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.10.tgz",
+ "integrity": "sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.10.tgz",
+ "integrity": "sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.10.tgz",
+ "integrity": "sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.10.tgz",
+ "integrity": "sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.10.tgz",
+ "integrity": "sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.10.tgz",
+ "integrity": "sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.10.tgz",
+ "integrity": "sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.10.tgz",
+ "integrity": "sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.10.tgz",
+ "integrity": "sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.10.tgz",
+ "integrity": "sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.10.tgz",
+ "integrity": "sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.10.tgz",
+ "integrity": "sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.10.tgz",
+ "integrity": "sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.10.tgz",
+ "integrity": "sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.10.tgz",
+ "integrity": "sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-arm64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.10.tgz",
+ "integrity": "sha512-AKQM3gfYfSW8XRk8DdMCzaLUFB15dTrZfnX8WXQoOUpUBQ+NaAFCP1kPS/ykbbGYz7rxn0WS48/81l9hFl3u4A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.10.tgz",
+ "integrity": "sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-arm64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.10.tgz",
+ "integrity": "sha512-5Se0VM9Wtq797YFn+dLimf2Zx6McttsH2olUBsDml+lm0GOCRVebRWUvDtkY4BWYv/3NgzS8b/UM3jQNh5hYyw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.10.tgz",
+ "integrity": "sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openharmony-arm64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.10.tgz",
+ "integrity": "sha512-AVTSBhTX8Y/Fz6OmIVBip9tJzZEUcY8WLh7I59+upa5/GPhh2/aM6bvOMQySspnCCHvFi79kMtdJS1w0DXAeag==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.10.tgz",
+ "integrity": "sha512-fswk3XT0Uf2pGJmOpDB7yknqhVkJQkAQOcW/ccVOtfx05LkbWOaRAtn5SaqXypeKQra1QaEa841PgrSL9ubSPQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.10.tgz",
+ "integrity": "sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.10.tgz",
+ "integrity": "sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.10.tgz",
+ "integrity": "sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.4.tgz",
+ "integrity": "sha512-BTm2qKNnWIQ5auf4deoetINJm2JzvihvGb9R6K/ETwKLql/Bb3Eg2H1FBp1gUb4YGbydMA3jcmQTR73q7J+GAA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.4.tgz",
+ "integrity": "sha512-P9LDQiC5vpgGFgz7GSM6dKPCiqR3XYN1WwJKA4/BUVDjHpYsf3iBEmVz62uyq20NGYbiGPR5cNHI7T1HqxNs2w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.4.tgz",
+ "integrity": "sha512-QRWSW+bVccAvZF6cbNZBJwAehmvG9NwfWHwMy4GbWi/BQIA/laTIktebT2ipVjNncqE6GLPxOok5hsECgAxGZg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.4.tgz",
+ "integrity": "sha512-hZgP05pResAkRJxL1b+7yxCnXPGsXU0fG9Yfd6dUaoGk+FhdPKCJ5L1Sumyxn8kvw8Qi5PvQ8ulenUbRjzeCTw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-arm64": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.4.tgz",
+ "integrity": "sha512-xmc30VshuBNUd58Xk4TKAEcRZHaXlV+tCxIXELiE9sQuK3kG8ZFgSPi57UBJt8/ogfhAF5Oz4ZSUBN77weM+mQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-x64": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.4.tgz",
+ "integrity": "sha512-WdSLpZFjOEqNZGmHflxyifolwAiZmDQzuOzIq9L27ButpCVpD7KzTRtEG1I0wMPFyiyUdOO+4t8GvrnBLQSwpw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.4.tgz",
+ "integrity": "sha512-xRiOu9Of1FZ4SxVbB0iEDXc4ddIcjCv2aj03dmW8UrZIW7aIQ9jVJdLBIhxBI+MaTnGAKyvMwPwQnoOEvP7FgQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.4.tgz",
+ "integrity": "sha512-FbhM2p9TJAmEIEhIgzR4soUcsW49e9veAQCziwbR+XWB2zqJ12b4i/+hel9yLiD8pLncDH4fKIPIbt5238341Q==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.4.tgz",
+ "integrity": "sha512-4n4gVwhPHR9q/g8lKCyz0yuaD0MvDf7dV4f9tHt0C73Mp8h38UCtSCSE6R9iBlTbXlmA8CjpsZoujhszefqueg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.4.tgz",
+ "integrity": "sha512-u0n17nGA0nvi/11gcZKsjkLj1QIpAuPFQbR48Subo7SmZJnGxDpspyw2kbpuoQnyK+9pwf3pAoEXerJs/8Mi9g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loong64-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.4.tgz",
+ "integrity": "sha512-0G2c2lpYtbTuXo8KEJkDkClE/+/2AFPdPAbmaHoE870foRFs4pBrDehilMcrSScrN/fB/1HTaWO4bqw+ewBzMQ==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-ppc64-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.4.tgz",
+ "integrity": "sha512-teSACug1GyZHmPDv14VNbvZFX779UqWTsd7KtTM9JIZRDI5NUwYSIS30kzI8m06gOPB//jtpqlhmraQ68b5X2g==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.4.tgz",
+ "integrity": "sha512-/MOEW3aHjjs1p4Pw1Xk4+3egRevx8Ji9N6HUIA1Ifh8Q+cg9dremvFCUbOX2Zebz80BwJIgCBUemjqhU5XI5Eg==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-musl": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.4.tgz",
+ "integrity": "sha512-1HHmsRyh845QDpEWzOFtMCph5Ts+9+yllCrREuBR/vg2RogAQGGBRC8lDPrPOMnrdOJ+mt1WLMOC2Kao/UwcvA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.4.tgz",
+ "integrity": "sha512-seoeZp4L/6D1MUyjWkOMRU6/iLmCU2EjbMTyAG4oIOs1/I82Y5lTeaxW0KBfkUdHAWN7j25bpkt0rjnOgAcQcA==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.4.tgz",
+ "integrity": "sha512-Wi6AXf0k0L7E2gteNsNHUs7UMwCIhsCTs6+tqQ5GPwVRWMaflqGec4Sd8n6+FNFDw9vGcReqk2KzBDhCa1DLYg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.4.tgz",
+ "integrity": "sha512-dtBZYjDmCQ9hW+WgEkaffvRRCKm767wWhxsFW3Lw86VXz/uJRuD438/XvbZT//B96Vs8oTA8Q4A0AfHbrxP9zw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-openharmony-arm64": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.4.tgz",
+ "integrity": "sha512-1ox+GqgRWqaB1RnyZXL8PD6E5f7YyRUJYnCqKpNzxzP0TkaUh112NDrR9Tt+C8rJ4x5G9Mk8PQR3o7Ku2RKqKA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.4.tgz",
+ "integrity": "sha512-8GKr640PdFNXwzIE0IrkMWUNUomILLkfeHjXBi/nUvFlpZP+FA8BKGKpacjW6OUUHaNI6sUURxR2U2g78FOHWQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.4.tgz",
+ "integrity": "sha512-AIy/jdJ7WtJ/F6EcfOb2GjR9UweO0n43jNObQMb6oGxkYTfLcnN7vYYpG+CN3lLxrQkzWnMOoNSHTW54pgbVxw==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.4.tgz",
+ "integrity": "sha512-UF9KfsH9yEam0UjTwAgdK0anlQ7c8/pWPU2yVjyWcF1I1thABt6WXE47cI71pGiZ8wGvxohBoLnxM04L/wj8mQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.4.tgz",
+ "integrity": "sha512-bf9PtUa0u8IXDVxzRToFQKsNCRz9qLYfR/MpECxl4mRoWYjAeFjgxj1XdZr2M/GNVpT05p+LgQOHopYDlUu6/w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
+ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/dompurify": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.7.tgz",
+ "integrity": "sha512-VaTstWtsneJY8xzy7DekmYWEOZcmzIe3Qb3zPd4STve1OBTa+e+WmS1ITQec1fZYXI3HCsOZZiSMpG6oxoWMWQ==",
+ "dev": true,
+ "license": "(MPL-2.0 OR Apache-2.0)"
+ },
+ "node_modules/esbuild": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.10.tgz",
+ "integrity": "sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.25.10",
+ "@esbuild/android-arm": "0.25.10",
+ "@esbuild/android-arm64": "0.25.10",
+ "@esbuild/android-x64": "0.25.10",
+ "@esbuild/darwin-arm64": "0.25.10",
+ "@esbuild/darwin-x64": "0.25.10",
+ "@esbuild/freebsd-arm64": "0.25.10",
+ "@esbuild/freebsd-x64": "0.25.10",
+ "@esbuild/linux-arm": "0.25.10",
+ "@esbuild/linux-arm64": "0.25.10",
+ "@esbuild/linux-ia32": "0.25.10",
+ "@esbuild/linux-loong64": "0.25.10",
+ "@esbuild/linux-mips64el": "0.25.10",
+ "@esbuild/linux-ppc64": "0.25.10",
+ "@esbuild/linux-riscv64": "0.25.10",
+ "@esbuild/linux-s390x": "0.25.10",
+ "@esbuild/linux-x64": "0.25.10",
+ "@esbuild/netbsd-arm64": "0.25.10",
+ "@esbuild/netbsd-x64": "0.25.10",
+ "@esbuild/openbsd-arm64": "0.25.10",
+ "@esbuild/openbsd-x64": "0.25.10",
+ "@esbuild/openharmony-arm64": "0.25.10",
+ "@esbuild/sunos-x64": "0.25.10",
+ "@esbuild/win32-arm64": "0.25.10",
+ "@esbuild/win32-ia32": "0.25.10",
+ "@esbuild/win32-x64": "0.25.10"
+ }
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/marked": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-14.0.0.tgz",
+ "integrity": "sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "marked": "bin/marked.js"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/monaco-editor": {
+ "version": "0.54.0",
+ "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.54.0.tgz",
+ "integrity": "sha512-hx45SEUoLatgWxHKCmlLJH81xBo0uXP4sRkESUpmDQevfi+e7K1VuiSprK6UpQ8u4zOcKNiH0pMvHvlMWA/4cw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "dompurify": "3.1.7",
+ "marked": "14.0.0"
+ }
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/postcss": {
+ "version": "8.5.6",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
+ "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "nanoid": "^3.3.11",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/rollup": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.4.tgz",
+ "integrity": "sha512-CLEVl+MnPAiKh5pl4dEWSyMTpuflgNQiLGhMv8ezD5W/qP8AKvmYpCOKRRNOh7oRKnauBZ4SyeYkMS+1VSyKwQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "1.0.8"
+ },
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=18.0.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.52.4",
+ "@rollup/rollup-android-arm64": "4.52.4",
+ "@rollup/rollup-darwin-arm64": "4.52.4",
+ "@rollup/rollup-darwin-x64": "4.52.4",
+ "@rollup/rollup-freebsd-arm64": "4.52.4",
+ "@rollup/rollup-freebsd-x64": "4.52.4",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.52.4",
+ "@rollup/rollup-linux-arm-musleabihf": "4.52.4",
+ "@rollup/rollup-linux-arm64-gnu": "4.52.4",
+ "@rollup/rollup-linux-arm64-musl": "4.52.4",
+ "@rollup/rollup-linux-loong64-gnu": "4.52.4",
+ "@rollup/rollup-linux-ppc64-gnu": "4.52.4",
+ "@rollup/rollup-linux-riscv64-gnu": "4.52.4",
+ "@rollup/rollup-linux-riscv64-musl": "4.52.4",
+ "@rollup/rollup-linux-s390x-gnu": "4.52.4",
+ "@rollup/rollup-linux-x64-gnu": "4.52.4",
+ "@rollup/rollup-linux-x64-musl": "4.52.4",
+ "@rollup/rollup-openharmony-arm64": "4.52.4",
+ "@rollup/rollup-win32-arm64-msvc": "4.52.4",
+ "@rollup/rollup-win32-ia32-msvc": "4.52.4",
+ "@rollup/rollup-win32-x64-gnu": "4.52.4",
+ "@rollup/rollup-win32-x64-msvc": "4.52.4",
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/tinyglobby": {
+ "version": "0.2.15",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
+ "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fdir": "^6.5.0",
+ "picomatch": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/SuperchupuDev"
+ }
+ },
+ "node_modules/tinyglobby/node_modules/fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/tinyglobby/node_modules/picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/typescript": {
+ "version": "5.9.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
+ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/vite": {
+ "version": "7.1.11",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.11.tgz",
+ "integrity": "sha512-uzcxnSDVjAopEUjljkWh8EIrg6tlzrjFUfMcR1EVsRDGwf/ccef0qQPRyOrROwhrTDaApueq+ja+KLPlzR/zdg==",
+ "dev": true,
+ "dependencies": {
+ "esbuild": "^0.25.0",
+ "fdir": "^6.5.0",
+ "picomatch": "^4.0.3",
+ "postcss": "^8.5.6",
+ "rollup": "^4.43.0",
+ "tinyglobby": "^0.2.15"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ },
+ "peerDependencies": {
+ "@types/node": "^20.19.0 || >=22.12.0",
+ "jiti": ">=1.21.0",
+ "less": "^4.0.0",
+ "lightningcss": "^1.21.0",
+ "sass": "^1.70.0",
+ "sass-embedded": "^1.70.0",
+ "stylus": ">=0.54.8",
+ "sugarss": "^5.0.0",
+ "terser": "^5.16.0",
+ "tsx": "^4.8.1",
+ "yaml": "^2.4.2"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "jiti": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "lightningcss": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "sass-embedded": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ },
+ "tsx": {
+ "optional": true
+ },
+ "yaml": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite/node_modules/fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite/node_modules/picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ }
+ },
+ "dependencies": {
+ "@esbuild/aix-ppc64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.10.tgz",
+ "integrity": "sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/android-arm": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.10.tgz",
+ "integrity": "sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/android-arm64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.10.tgz",
+ "integrity": "sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/android-x64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.10.tgz",
+ "integrity": "sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/darwin-arm64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.10.tgz",
+ "integrity": "sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/darwin-x64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.10.tgz",
+ "integrity": "sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/freebsd-arm64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.10.tgz",
+ "integrity": "sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/freebsd-x64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.10.tgz",
+ "integrity": "sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-arm": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.10.tgz",
+ "integrity": "sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-arm64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.10.tgz",
+ "integrity": "sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-ia32": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.10.tgz",
+ "integrity": "sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-loong64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.10.tgz",
+ "integrity": "sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-mips64el": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.10.tgz",
+ "integrity": "sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-ppc64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.10.tgz",
+ "integrity": "sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-riscv64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.10.tgz",
+ "integrity": "sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-s390x": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.10.tgz",
+ "integrity": "sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-x64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.10.tgz",
+ "integrity": "sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/netbsd-arm64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.10.tgz",
+ "integrity": "sha512-AKQM3gfYfSW8XRk8DdMCzaLUFB15dTrZfnX8WXQoOUpUBQ+NaAFCP1kPS/ykbbGYz7rxn0WS48/81l9hFl3u4A==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/netbsd-x64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.10.tgz",
+ "integrity": "sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/openbsd-arm64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.10.tgz",
+ "integrity": "sha512-5Se0VM9Wtq797YFn+dLimf2Zx6McttsH2olUBsDml+lm0GOCRVebRWUvDtkY4BWYv/3NgzS8b/UM3jQNh5hYyw==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/openbsd-x64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.10.tgz",
+ "integrity": "sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/openharmony-arm64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.10.tgz",
+ "integrity": "sha512-AVTSBhTX8Y/Fz6OmIVBip9tJzZEUcY8WLh7I59+upa5/GPhh2/aM6bvOMQySspnCCHvFi79kMtdJS1w0DXAeag==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/sunos-x64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.10.tgz",
+ "integrity": "sha512-fswk3XT0Uf2pGJmOpDB7yknqhVkJQkAQOcW/ccVOtfx05LkbWOaRAtn5SaqXypeKQra1QaEa841PgrSL9ubSPQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/win32-arm64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.10.tgz",
+ "integrity": "sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/win32-ia32": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.10.tgz",
+ "integrity": "sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/win32-x64": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.10.tgz",
+ "integrity": "sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-android-arm-eabi": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.4.tgz",
+ "integrity": "sha512-BTm2qKNnWIQ5auf4deoetINJm2JzvihvGb9R6K/ETwKLql/Bb3Eg2H1FBp1gUb4YGbydMA3jcmQTR73q7J+GAA==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-android-arm64": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.4.tgz",
+ "integrity": "sha512-P9LDQiC5vpgGFgz7GSM6dKPCiqR3XYN1WwJKA4/BUVDjHpYsf3iBEmVz62uyq20NGYbiGPR5cNHI7T1HqxNs2w==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-darwin-arm64": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.4.tgz",
+ "integrity": "sha512-QRWSW+bVccAvZF6cbNZBJwAehmvG9NwfWHwMy4GbWi/BQIA/laTIktebT2ipVjNncqE6GLPxOok5hsECgAxGZg==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-darwin-x64": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.4.tgz",
+ "integrity": "sha512-hZgP05pResAkRJxL1b+7yxCnXPGsXU0fG9Yfd6dUaoGk+FhdPKCJ5L1Sumyxn8kvw8Qi5PvQ8ulenUbRjzeCTw==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-freebsd-arm64": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.4.tgz",
+ "integrity": "sha512-xmc30VshuBNUd58Xk4TKAEcRZHaXlV+tCxIXELiE9sQuK3kG8ZFgSPi57UBJt8/ogfhAF5Oz4ZSUBN77weM+mQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-freebsd-x64": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.4.tgz",
+ "integrity": "sha512-WdSLpZFjOEqNZGmHflxyifolwAiZmDQzuOzIq9L27ButpCVpD7KzTRtEG1I0wMPFyiyUdOO+4t8GvrnBLQSwpw==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.4.tgz",
+ "integrity": "sha512-xRiOu9Of1FZ4SxVbB0iEDXc4ddIcjCv2aj03dmW8UrZIW7aIQ9jVJdLBIhxBI+MaTnGAKyvMwPwQnoOEvP7FgQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-arm-musleabihf": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.4.tgz",
+ "integrity": "sha512-FbhM2p9TJAmEIEhIgzR4soUcsW49e9veAQCziwbR+XWB2zqJ12b4i/+hel9yLiD8pLncDH4fKIPIbt5238341Q==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.4.tgz",
+ "integrity": "sha512-4n4gVwhPHR9q/g8lKCyz0yuaD0MvDf7dV4f9tHt0C73Mp8h38UCtSCSE6R9iBlTbXlmA8CjpsZoujhszefqueg==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-arm64-musl": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.4.tgz",
+ "integrity": "sha512-u0n17nGA0nvi/11gcZKsjkLj1QIpAuPFQbR48Subo7SmZJnGxDpspyw2kbpuoQnyK+9pwf3pAoEXerJs/8Mi9g==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-loong64-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.4.tgz",
+ "integrity": "sha512-0G2c2lpYtbTuXo8KEJkDkClE/+/2AFPdPAbmaHoE870foRFs4pBrDehilMcrSScrN/fB/1HTaWO4bqw+ewBzMQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-ppc64-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.4.tgz",
+ "integrity": "sha512-teSACug1GyZHmPDv14VNbvZFX779UqWTsd7KtTM9JIZRDI5NUwYSIS30kzI8m06gOPB//jtpqlhmraQ68b5X2g==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.4.tgz",
+ "integrity": "sha512-/MOEW3aHjjs1p4Pw1Xk4+3egRevx8Ji9N6HUIA1Ifh8Q+cg9dremvFCUbOX2Zebz80BwJIgCBUemjqhU5XI5Eg==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-riscv64-musl": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.4.tgz",
+ "integrity": "sha512-1HHmsRyh845QDpEWzOFtMCph5Ts+9+yllCrREuBR/vg2RogAQGGBRC8lDPrPOMnrdOJ+mt1WLMOC2Kao/UwcvA==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.4.tgz",
+ "integrity": "sha512-seoeZp4L/6D1MUyjWkOMRU6/iLmCU2EjbMTyAG4oIOs1/I82Y5lTeaxW0KBfkUdHAWN7j25bpkt0rjnOgAcQcA==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-x64-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.4.tgz",
+ "integrity": "sha512-Wi6AXf0k0L7E2gteNsNHUs7UMwCIhsCTs6+tqQ5GPwVRWMaflqGec4Sd8n6+FNFDw9vGcReqk2KzBDhCa1DLYg==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-x64-musl": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.4.tgz",
+ "integrity": "sha512-dtBZYjDmCQ9hW+WgEkaffvRRCKm767wWhxsFW3Lw86VXz/uJRuD438/XvbZT//B96Vs8oTA8Q4A0AfHbrxP9zw==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-openharmony-arm64": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.4.tgz",
+ "integrity": "sha512-1ox+GqgRWqaB1RnyZXL8PD6E5f7YyRUJYnCqKpNzxzP0TkaUh112NDrR9Tt+C8rJ4x5G9Mk8PQR3o7Ku2RKqKA==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.4.tgz",
+ "integrity": "sha512-8GKr640PdFNXwzIE0IrkMWUNUomILLkfeHjXBi/nUvFlpZP+FA8BKGKpacjW6OUUHaNI6sUURxR2U2g78FOHWQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.4.tgz",
+ "integrity": "sha512-AIy/jdJ7WtJ/F6EcfOb2GjR9UweO0n43jNObQMb6oGxkYTfLcnN7vYYpG+CN3lLxrQkzWnMOoNSHTW54pgbVxw==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-win32-x64-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.4.tgz",
+ "integrity": "sha512-UF9KfsH9yEam0UjTwAgdK0anlQ7c8/pWPU2yVjyWcF1I1thABt6WXE47cI71pGiZ8wGvxohBoLnxM04L/wj8mQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-win32-x64-msvc": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.4.tgz",
+ "integrity": "sha512-bf9PtUa0u8IXDVxzRToFQKsNCRz9qLYfR/MpECxl4mRoWYjAeFjgxj1XdZr2M/GNVpT05p+LgQOHopYDlUu6/w==",
+ "dev": true,
+ "optional": true
+ },
+ "@types/estree": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
+ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
+ "dev": true
+ },
+ "dompurify": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.7.tgz",
+ "integrity": "sha512-VaTstWtsneJY8xzy7DekmYWEOZcmzIe3Qb3zPd4STve1OBTa+e+WmS1ITQec1fZYXI3HCsOZZiSMpG6oxoWMWQ==",
+ "dev": true
+ },
+ "esbuild": {
+ "version": "0.25.10",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.10.tgz",
+ "integrity": "sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==",
+ "dev": true,
+ "requires": {
+ "@esbuild/aix-ppc64": "0.25.10",
+ "@esbuild/android-arm": "0.25.10",
+ "@esbuild/android-arm64": "0.25.10",
+ "@esbuild/android-x64": "0.25.10",
+ "@esbuild/darwin-arm64": "0.25.10",
+ "@esbuild/darwin-x64": "0.25.10",
+ "@esbuild/freebsd-arm64": "0.25.10",
+ "@esbuild/freebsd-x64": "0.25.10",
+ "@esbuild/linux-arm": "0.25.10",
+ "@esbuild/linux-arm64": "0.25.10",
+ "@esbuild/linux-ia32": "0.25.10",
+ "@esbuild/linux-loong64": "0.25.10",
+ "@esbuild/linux-mips64el": "0.25.10",
+ "@esbuild/linux-ppc64": "0.25.10",
+ "@esbuild/linux-riscv64": "0.25.10",
+ "@esbuild/linux-s390x": "0.25.10",
+ "@esbuild/linux-x64": "0.25.10",
+ "@esbuild/netbsd-arm64": "0.25.10",
+ "@esbuild/netbsd-x64": "0.25.10",
+ "@esbuild/openbsd-arm64": "0.25.10",
+ "@esbuild/openbsd-x64": "0.25.10",
+ "@esbuild/openharmony-arm64": "0.25.10",
+ "@esbuild/sunos-x64": "0.25.10",
+ "@esbuild/win32-arm64": "0.25.10",
+ "@esbuild/win32-ia32": "0.25.10",
+ "@esbuild/win32-x64": "0.25.10"
+ }
+ },
+ "fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "optional": true
+ },
+ "marked": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-14.0.0.tgz",
+ "integrity": "sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==",
+ "dev": true
+ },
+ "monaco-editor": {
+ "version": "0.54.0",
+ "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.54.0.tgz",
+ "integrity": "sha512-hx45SEUoLatgWxHKCmlLJH81xBo0uXP4sRkESUpmDQevfi+e7K1VuiSprK6UpQ8u4zOcKNiH0pMvHvlMWA/4cw==",
+ "dev": true,
+ "requires": {
+ "dompurify": "3.1.7",
+ "marked": "14.0.0"
+ }
+ },
+ "nanoid": {
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+ "dev": true
+ },
+ "picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "dev": true
+ },
+ "postcss": {
+ "version": "8.5.6",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
+ "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
+ "dev": true,
+ "requires": {
+ "nanoid": "^3.3.11",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
+ }
+ },
+ "rollup": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.4.tgz",
+ "integrity": "sha512-CLEVl+MnPAiKh5pl4dEWSyMTpuflgNQiLGhMv8ezD5W/qP8AKvmYpCOKRRNOh7oRKnauBZ4SyeYkMS+1VSyKwQ==",
+ "dev": true,
+ "requires": {
+ "@rollup/rollup-android-arm-eabi": "4.52.4",
+ "@rollup/rollup-android-arm64": "4.52.4",
+ "@rollup/rollup-darwin-arm64": "4.52.4",
+ "@rollup/rollup-darwin-x64": "4.52.4",
+ "@rollup/rollup-freebsd-arm64": "4.52.4",
+ "@rollup/rollup-freebsd-x64": "4.52.4",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.52.4",
+ "@rollup/rollup-linux-arm-musleabihf": "4.52.4",
+ "@rollup/rollup-linux-arm64-gnu": "4.52.4",
+ "@rollup/rollup-linux-arm64-musl": "4.52.4",
+ "@rollup/rollup-linux-loong64-gnu": "4.52.4",
+ "@rollup/rollup-linux-ppc64-gnu": "4.52.4",
+ "@rollup/rollup-linux-riscv64-gnu": "4.52.4",
+ "@rollup/rollup-linux-riscv64-musl": "4.52.4",
+ "@rollup/rollup-linux-s390x-gnu": "4.52.4",
+ "@rollup/rollup-linux-x64-gnu": "4.52.4",
+ "@rollup/rollup-linux-x64-musl": "4.52.4",
+ "@rollup/rollup-openharmony-arm64": "4.52.4",
+ "@rollup/rollup-win32-arm64-msvc": "4.52.4",
+ "@rollup/rollup-win32-ia32-msvc": "4.52.4",
+ "@rollup/rollup-win32-x64-gnu": "4.52.4",
+ "@rollup/rollup-win32-x64-msvc": "4.52.4",
+ "@types/estree": "1.0.8",
+ "fsevents": "~2.3.2"
+ }
+ },
+ "source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "dev": true
+ },
+ "tinyglobby": {
+ "version": "0.2.15",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
+ "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
+ "dev": true,
+ "requires": {
+ "fdir": "^6.5.0",
+ "picomatch": "^4.0.3"
+ },
+ "dependencies": {
+ "fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+ "dev": true,
+ "requires": {}
+ },
+ "picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "dev": true
+ }
+ }
+ },
+ "typescript": {
+ "version": "5.9.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
+ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
+ "dev": true
+ },
+ "vite": {
+ "version": "7.1.11",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.11.tgz",
+ "integrity": "sha512-uzcxnSDVjAopEUjljkWh8EIrg6tlzrjFUfMcR1EVsRDGwf/ccef0qQPRyOrROwhrTDaApueq+ja+KLPlzR/zdg==",
+ "dev": true,
+ "requires": {
+ "esbuild": "^0.25.0",
+ "fdir": "^6.5.0",
+ "fsevents": "~2.3.3",
+ "picomatch": "^4.0.3",
+ "postcss": "^8.5.6",
+ "rollup": "^4.43.0",
+ "tinyglobby": "^0.2.15"
+ },
+ "dependencies": {
+ "fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+ "dev": true,
+ "requires": {}
+ },
+ "picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "dev": true
+ }
+ }
+ }
+ }
+}
diff --git a/samples/browser-esm-vite/package.json b/samples/browser-esm-vite/package.json
new file mode 100644
index 00000000..b4335778
--- /dev/null
+++ b/samples/browser-esm-vite/package.json
@@ -0,0 +1,14 @@
+{
+ "name": "browser-esm-vite",
+ "scripts": {
+ "dev": "vite",
+ "build": "tsc && vite build",
+ "serve": "vite preview"
+ },
+ "dependencies": {},
+ "devDependencies": {
+ "monaco-editor": "^0.54.0",
+ "typescript": "^5.9.3",
+ "vite": "^7.1.11"
+ }
+}
diff --git a/samples/browser-esm-vite/style.css b/samples/browser-esm-vite/style.css
new file mode 100644
index 00000000..2896d3f1
--- /dev/null
+++ b/samples/browser-esm-vite/style.css
@@ -0,0 +1,8 @@
+html,
+body,
+#root {
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100%;
+}
diff --git a/samples/browser-esm-vite/tsconfig.json b/samples/browser-esm-vite/tsconfig.json
new file mode 100644
index 00000000..a42d3d80
--- /dev/null
+++ b/samples/browser-esm-vite/tsconfig.json
@@ -0,0 +1,11 @@
+{
+ "compilerOptions": {
+ "target": "ESNext",
+ "strict": true,
+ "module": "ESNext",
+ "jsx": "react-jsx",
+ "moduleResolution": "node",
+ "allowSyntheticDefaultImports": true
+ },
+ "include": ["./"]
+}
diff --git a/samples/browser-esm-vite/vite.config.ts b/samples/browser-esm-vite/vite.config.ts
new file mode 100644
index 00000000..f85707de
--- /dev/null
+++ b/samples/browser-esm-vite/vite.config.ts
@@ -0,0 +1,19 @@
+import { defineConfig } from 'vite';
+import { join } from 'path';
+
+export default defineConfig({
+ server: {
+ fs: {
+ allow: ['../../', '../../../vscode']
+ }
+ },
+ resolve: {
+ alias: [{
+ find: 'monaco-editor-core/esm/vs',
+ replacement: join(__dirname, '../../../vscode/src/vs')
+ }, {
+ find: 'monaco-editor-core',
+ replacement: join(__dirname, '../../../vscode/src/vs/editor/editor.main.ts')
+ }],
+ }
+});
diff --git a/samples/package-lock.json b/samples/package-lock.json
index f67d1ad8..fdadbcec 100644
--- a/samples/package-lock.json
+++ b/samples/package-lock.json
@@ -721,6 +721,7 @@
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"dev": true,
"license": "MIT",
+ "peer": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -747,6 +748,7 @@
"integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.3",
"fast-uri": "^3.0.1",
@@ -962,6 +964,7 @@
}
],
"license": "MIT",
+ "peer": true,
"dependencies": {
"caniuse-lite": "^1.0.30001737",
"electron-to-chromium": "^1.5.211",
@@ -1259,35 +1262,34 @@
}
},
"node_modules/compression": {
- "version": "1.7.4",
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz",
+ "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==",
"dev": true,
"license": "MIT",
"dependencies": {
- "accepts": "~1.3.5",
- "bytes": "3.0.0",
- "compressible": "~2.0.16",
+ "bytes": "3.1.2",
+ "compressible": "~2.0.18",
"debug": "2.6.9",
- "on-headers": "~1.0.2",
- "safe-buffer": "5.1.2",
+ "negotiator": "~0.6.4",
+ "on-headers": "~1.1.0",
+ "safe-buffer": "5.2.1",
"vary": "~1.1.2"
},
"engines": {
"node": ">= 0.8.0"
}
},
- "node_modules/compression/node_modules/bytes": {
- "version": "3.0.0",
+ "node_modules/compression/node_modules/negotiator": {
+ "version": "0.6.4",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz",
+ "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">= 0.8"
+ "node": ">= 0.6"
}
},
- "node_modules/compression/node_modules/safe-buffer": {
- "version": "5.1.2",
- "dev": true,
- "license": "MIT"
- },
"node_modules/concat-map": {
"version": "0.0.1",
"dev": true,
@@ -2184,6 +2186,21 @@
"dev": true,
"license": "ISC"
},
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
"node_modules/function-bind": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
@@ -3160,11 +3177,12 @@
}
},
"node_modules/monaco-editor": {
- "version": "0.53.0-dev-20250905",
- "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.53.0-dev-20250905.tgz",
- "integrity": "sha512-dz8KD6kfIkQ9vQgUlUPBf24zFiDo/tPbI6HmDoBToURc3vXSlmxnR3NccA5NAaG/k3SrYZ+m4Pd+sjGtc7SV8w==",
+ "version": "0.53.0",
+ "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.53.0.tgz",
+ "integrity": "sha512-0WNThgC6CMWNXXBxTbaYYcunj08iB5rnx4/G56UOPeL9UVIUGGHA1GR0EWIh9Ebabj7NpCRawQ5b0hfN1jQmYQ==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@types/trusted-types": "^1.0.6"
}
@@ -3241,9 +3259,9 @@
}
},
"node_modules/node-forge": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz",
- "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==",
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.3.tgz",
+ "integrity": "sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==",
"dev": true,
"license": "(BSD-3-Clause OR GPL-2.0)",
"engines": {
@@ -3343,7 +3361,9 @@
}
},
"node_modules/on-headers": {
- "version": "1.0.2",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz",
+ "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3561,6 +3581,7 @@
"url": "https://github.com/sponsors/ai"
}
],
+ "peer": true,
"dependencies": {
"nanoid": "^3.3.6",
"picocolors": "^1.0.0",
@@ -3992,6 +4013,7 @@
"version": "6.12.6",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -4723,7 +4745,8 @@
"node_modules/tslib": {
"version": "2.4.0",
"dev": true,
- "license": "0BSD"
+ "license": "0BSD",
+ "peer": true
},
"node_modules/tunnel": {
"version": "0.0.6",
@@ -4765,6 +4788,7 @@
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
"integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
"dev": true,
+ "peer": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -4894,6 +4918,7 @@
"integrity": "sha512-7b0dTKR3Ed//AD/6kkx/o7duS8H3f1a4w3BYpIriX4BzIhjkn4teo05cptsxvLesHFKK5KObnadmCHBwGc+51A==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@types/eslint-scope": "^3.7.7",
"@types/estree": "^1.0.8",
@@ -4941,6 +4966,7 @@
"version": "4.10.0",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"@discoveryjs/json-ext": "^0.5.0",
"@webpack-cli/configtest": "^1.2.0",
diff --git a/scripts/ci/build-monaco-editor-core-pkg.ts b/scripts/ci/build-monaco-editor-core-pkg.ts
index 1a696b62..c130670a 100644
--- a/scripts/ci/build-monaco-editor-core-pkg.ts
+++ b/scripts/ci/build-monaco-editor-core-pkg.ts
@@ -81,7 +81,6 @@ async function buildAndTest() {
// Run checks and compilation
await run('npm run gulp hygiene', { cwd: vscodePath });
await run('npm run valid-layers-check', { cwd: vscodePath });
- await run('npm run compile', { cwd: join(vscodePath, 'build') });
await run('npm run eslint', { cwd: vscodePath });
await run('npm run monaco-compile-check', { cwd: vscodePath });
await run('npm run --max_old_space_size=4095 compile', { cwd: vscodePath });
@@ -89,10 +88,8 @@ async function buildAndTest() {
// Build editor distribution
await run('npm run gulp editor-distro', { cwd: vscodePath });
- return; // To save CI time.
-
// Run browser tests
- await run('npm run test-browser --browser chromium', { cwd: vscodePath });
+ await run('npm run test-browser -- --browser chromium', { cwd: vscodePath });
// TypeScript typings test
await run('mkdir typings-test', { cwd: vscodePath });
@@ -110,6 +107,4 @@ async function buildAndTest() {
await run('npm test', { cwd: testMonacoDir });
}
-//buildAndTest();
-//prepareMonacoEditorCoreRelease('0.99.0', 'main');
prepareMonacoEditorCoreReleaseStableOrNightly();
diff --git a/scripts/ci/build-monaco-editor-pkg.ts b/scripts/ci/build-monaco-editor-pkg.ts
index 59e31d4e..f04b2177 100644
--- a/scripts/ci/build-monaco-editor-pkg.ts
+++ b/scripts/ci/build-monaco-editor-pkg.ts
@@ -43,36 +43,32 @@ async function prepareMonacoEditorRelease(monacoEditorCoreVersion: string) {
});
await group('Set Version & Update monaco-editor-core Version', async () => {
- const packageJson = JSON.parse(
- await readFile(monacoEditorPackageJsonPath, { encoding: 'utf-8' })
- ) as PackageJson;
-
+ const packageJson = JSON.parse(await readFile(monacoEditorPackageJsonPath, { encoding: 'utf-8' })) as PackageJson;
packageJson.version = monacoEditorCoreVersion;
packageJson.devDependencies['monaco-editor-core'] = monacoEditorCoreVersion;
+ await writeJsonFile(monacoEditorPackageJsonPath, packageJson);
+ });
- const monacoEditorCorePackageJson = JSON.parse(
- await readFile(monacoEditorCorePackageJsonPath, { encoding: 'utf-8' })
- ) as PackageJson;
+ await group('npm install to pick up monaco-editor-core', async () => {
+ await run('npm install', { cwd: rootPath });
+ });
+ await group('Pick up monaco-editor-core dependencies for CVE tracking', async () => {
+ const packageJson = JSON.parse(await readFile(monacoEditorPackageJsonPath, { encoding: 'utf-8' })) as PackageJson;
+ const monacoEditorCorePackageJson = JSON.parse(await readFile(monacoEditorCorePackageJsonPath, { encoding: 'utf-8' })) as PackageJson;
if (monacoEditorCorePackageJson.dependencies) {
if (!packageJson.dependencies) {
packageJson.dependencies = {};
}
-
objectMergeThrowIfSet(
packageJson.dependencies,
monacoEditorCorePackageJson.dependencies,
'dependencies'
);
}
-
await writeJsonFile(monacoEditorPackageJsonPath, packageJson);
});
- await group('npm install to pick up monaco-editor-core', async () => {
- await run('npm install', { cwd: rootPath });
- });
-
await group('Setting vscode commitId from monaco-editor-core', async () => {
const monacoEditorCorePackageJson = JSON.parse(
await readFile(monacoEditorCorePackageJsonPath, { encoding: 'utf-8' })
diff --git a/scripts/lib/index.ts b/scripts/lib/index.ts
index 894aa3af..a6a26b4d 100644
--- a/scripts/lib/index.ts
+++ b/scripts/lib/index.ts
@@ -54,6 +54,7 @@ export async function gitShallowClone(
await run(`git fetch --depth 1 origin ${ref}`, options);
await run(`git checkout ${ref}`, options);
const commitId = await gitCommitId(targetPath);
+ console.log(`Cloned ${repositoryUrl} (${commitId}) to ${targetPath}`);
return { commitId };
}
diff --git a/src/basic-languages/kotlin/kotlin.test.ts b/src/basic-languages/kotlin/kotlin.test.ts
index 11b2bbb7..c73aca5e 100644
--- a/src/basic-languages/kotlin/kotlin.test.ts
+++ b/src/basic-languages/kotlin/kotlin.test.ts
@@ -277,6 +277,13 @@ testTokenization('kotlin', [
}
],
+ [
+ {
+ line: '.123',
+ tokens: [{ startIndex: 0, type: 'number.float.kt' }]
+ }
+ ],
+
[
{
line: '0x',
@@ -301,24 +308,62 @@ testTokenization('kotlin', [
}
],
+ [
+ {
+ line: '0Xff_81_00L',
+ tokens: [{ startIndex: 0, type: 'number.hex.kt' }]
+ }
+ ],
+
+ [
+ {
+ line: '0x123u',
+ tokens: [{ startIndex: 0, type: 'number.hex.kt' }]
+ }
+ ],
+
+ [
+ {
+ line: '0x123U',
+ tokens: [{ startIndex: 0, type: 'number.hex.kt' }]
+ }
+ ],
+
+ [
+ {
+ line: '0x123uL',
+ tokens: [{ startIndex: 0, type: 'number.hex.kt' }]
+ }
+ ],
+
+ [
+ {
+ line: '0x123UL',
+ tokens: [{ startIndex: 0, type: 'number.hex.kt' }]
+ }
+ ],
+
[
{
line: '023L',
- tokens: [{ startIndex: 0, type: 'number.octal.kt' }]
+ tokens: [{ startIndex: 0, type: 'number.kt' }]
}
],
[
{
line: '0123l',
- tokens: [{ startIndex: 0, type: 'number.octal.kt' }]
+ tokens: [
+ { startIndex: 0, type: 'number.kt' },
+ { startIndex: 4, type: 'identifier.kt' }
+ ]
}
],
[
{
line: '05_2',
- tokens: [{ startIndex: 0, type: 'number.octal.kt' }]
+ tokens: [{ startIndex: 0, type: 'number.kt' }]
}
],
@@ -336,6 +381,41 @@ testTokenization('kotlin', [
}
],
+ [
+ {
+ line: '0b0101L',
+ tokens: [{ startIndex: 0, type: 'number.binary.kt' }]
+ }
+ ],
+
+ [
+ {
+ line: '0B0101u',
+ tokens: [{ startIndex: 0, type: 'number.binary.kt' }]
+ }
+ ],
+
+ [
+ {
+ line: '0B1__0U',
+ tokens: [{ startIndex: 0, type: 'number.binary.kt' }]
+ }
+ ],
+
+ [
+ {
+ line: '0B0101uL',
+ tokens: [{ startIndex: 0, type: 'number.binary.kt' }]
+ }
+ ],
+
+ [
+ {
+ line: '0B1__0UL',
+ tokens: [{ startIndex: 0, type: 'number.binary.kt' }]
+ }
+ ],
+
[
{
line: '10e3',
@@ -401,57 +481,88 @@ testTokenization('kotlin', [
[
{
- line: '23.5D',
+ line: '.001f',
tokens: [{ startIndex: 0, type: 'number.float.kt' }]
}
],
+ [
+ {
+ line: '23.5D',
+ tokens: [
+ { startIndex: 0, type: 'number.float.kt' },
+ { startIndex: 4, type: 'type.identifier.kt' }
+ ]
+ }
+ ],
+
[
{
line: '23.5d',
- tokens: [{ startIndex: 0, type: 'number.float.kt' }]
+ tokens: [
+ { startIndex: 0, type: 'number.float.kt' },
+ { startIndex: 4, type: 'identifier.kt' }
+ ]
}
],
[
{
line: '1.72E3D',
- tokens: [{ startIndex: 0, type: 'number.float.kt' }]
+ tokens: [
+ { startIndex: 0, type: 'number.float.kt' },
+ { startIndex: 6, type: 'type.identifier.kt' }
+ ]
}
],
[
{
line: '1.72E3d',
- tokens: [{ startIndex: 0, type: 'number.float.kt' }]
+ tokens: [
+ { startIndex: 0, type: 'number.float.kt' },
+ { startIndex: 6, type: 'identifier.kt' }
+ ]
}
],
[
{
line: '1.72E-3d',
- tokens: [{ startIndex: 0, type: 'number.float.kt' }]
+ tokens: [
+ { startIndex: 0, type: 'number.float.kt' },
+ { startIndex: 7, type: 'identifier.kt' }
+ ]
}
],
[
{
line: '1.72e3D',
- tokens: [{ startIndex: 0, type: 'number.float.kt' }]
+ tokens: [
+ { startIndex: 0, type: 'number.float.kt' },
+ { startIndex: 6, type: 'type.identifier.kt' }
+ ]
}
],
[
{
line: '1.72e3d',
- tokens: [{ startIndex: 0, type: 'number.float.kt' }]
+ tokens: [
+ { startIndex: 0, type: 'number.float.kt' },
+ { startIndex: 6, type: 'identifier.kt' }
+ ]
}
],
[
{
line: '1.72e-3d',
- tokens: [{ startIndex: 0, type: 'number.float.kt' }]
+ tokens: [
+ { startIndex: 0, type: 'number.float.kt' },
+ { startIndex: 7, type: 'identifier.kt' }
+ ]
}
],
@@ -465,6 +576,37 @@ testTokenization('kotlin', [
[
{
line: '23l',
+ tokens: [
+ { startIndex: 0, type: 'number.kt' },
+ { startIndex: 2, type: 'identifier.kt' }
+ ]
+ }
+ ],
+
+ [
+ {
+ line: '23u',
+ tokens: [{ startIndex: 0, type: 'number.kt' }]
+ }
+ ],
+
+ [
+ {
+ line: '23U',
+ tokens: [{ startIndex: 0, type: 'number.kt' }]
+ }
+ ],
+
+ [
+ {
+ line: '23uL',
+ tokens: [{ startIndex: 0, type: 'number.kt' }]
+ }
+ ],
+
+ [
+ {
+ line: '23UL',
tokens: [{ startIndex: 0, type: 'number.kt' }]
}
],
@@ -496,8 +638,7 @@ testTokenization('kotlin', [
tokens: [
{ startIndex: 0, type: 'number.kt' },
{ startIndex: 1, type: 'identifier.kt' },
- { startIndex: 2, type: 'delimiter.kt' },
- { startIndex: 3, type: 'number.float.kt' }
+ { startIndex: 2, type: 'number.float.kt' }
]
}
],
@@ -567,7 +708,7 @@ testTokenization('kotlin', [
{
line: '052_',
tokens: [
- { startIndex: 0, type: 'number.octal.kt' },
+ { startIndex: 0, type: 'number.kt' },
{ startIndex: 3, type: 'identifier.kt' }
]
}
diff --git a/src/basic-languages/kotlin/kotlin.ts b/src/basic-languages/kotlin/kotlin.ts
index c16c7e69..01643b5c 100644
--- a/src/basic-languages/kotlin/kotlin.ts
+++ b/src/basic-languages/kotlin/kotlin.ts
@@ -211,13 +211,12 @@ export const language = {
[/@\s*[a-zA-Z_\$][\w\$]*/, 'annotation'],
// numbers
- [/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/, 'number.float'],
- [/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/, 'number.float'],
- [/0[xX](@hexdigits)[Ll]?/, 'number.hex'],
- [/0(@octaldigits)[Ll]?/, 'number.octal'],
- [/0[bB](@binarydigits)[Ll]?/, 'number.binary'],
- [/(@digits)[fFdD]/, 'number.float'],
- [/(@digits)[lL]?/, 'number'],
+ [/(@digits)[eE]([\-+]?(@digits))?[fF]?/, 'number.float'],
+ [/(@digits)?\.(@digits)([eE][\-+]?(@digits))?[fF]?/, 'number.float'],
+ [/0[xX](@hexdigits)[uU]?L?/, 'number.hex'],
+ [/0[bB](@binarydigits)[uU]?L?/, 'number.binary'],
+ [/(@digits)[fF]/, 'number.float'],
+ [/(@digits)[uU]?L?/, 'number'],
// delimiter: after number because of .\d floats
[/[;,.]/, 'delimiter'],
diff --git a/src/common/workers.ts b/src/common/workers.ts
index 2784b9f5..94bbc257 100644
--- a/src/common/workers.ts
+++ b/src/common/workers.ts
@@ -6,9 +6,9 @@ function createTrustedTypesPolicy(
):
| undefined
| Pick<
- TrustedTypePolicy,
- 'name' | Extract
- > {
+ TrustedTypePolicy,
+ 'name' | Extract
+ > {
interface IMonacoEnvironment {
createTrustedTypesPolicy(
policyName: string,
@@ -16,9 +16,9 @@ function createTrustedTypesPolicy(
):
| undefined
| Pick<
- TrustedTypePolicy,
- 'name' | Extract
- >;
+ TrustedTypePolicy,
+ 'name' | Extract
+ >;
}
const monacoEnvironment: IMonacoEnvironment | undefined = (globalThis as any).MonacoEnvironment;
@@ -52,7 +52,7 @@ if (
});
}
-function getWorker(descriptor: { label: string; moduleId: string }): Worker | Promise {
+function getWorker(descriptor: { label: string; moduleId: string; createWorker?: () => Worker }): Worker | Promise {
const label = descriptor.label;
// Option for hosts to overwrite the worker script (used in the standalone editor)
interface IMonacoEnvironment {
@@ -73,6 +73,10 @@ function getWorker(descriptor: { label: string; moduleId: string }): Worker | Pr
}
}
+ if (descriptor.createWorker) {
+ return descriptor.createWorker();
+ }
+
// const esmWorkerLocation = descriptor.esmModuleLocation;
// if (esmWorkerLocation) {
// const workerUrl = getWorkerBootstrapUrl(label, esmWorkerLocation.toString(true));
@@ -91,7 +95,8 @@ export function createWebWorker(
const worker = Promise.resolve(
getWorker({
label: opts.label ?? 'monaco-editor-worker',
- moduleId: opts.moduleId
+ moduleId: opts.moduleId,
+ createWorker: opts.createWorker,
})
).then((w) => {
w.postMessage('ignore');
@@ -111,6 +116,7 @@ export interface IWebWorkerOptions {
* It should export a function `create` that should return the exported proxy.
*/
moduleId: string;
+ createWorker?: () => Worker,
/**
* The data to send over when calling create on the module.
*/
diff --git a/src/editor/edcore.main.ts b/src/editor/edcore.main.ts
new file mode 100644
index 00000000..b2c570c9
--- /dev/null
+++ b/src/editor/edcore.main.ts
@@ -0,0 +1,2 @@
+import './internal/initialize';
+export * from 'monaco-editor-core';
diff --git a/src/editor/editor.all.ts b/src/editor/editor.all.ts
new file mode 100644
index 00000000..e8e7ebfa
--- /dev/null
+++ b/src/editor/editor.all.ts
@@ -0,0 +1,3 @@
+import './internal/initialize';
+/// @ts-ignore
+export * from 'monaco-editor-core/esm/vs/editor/editor.all';
diff --git a/src/editor/editor.api.ts b/src/editor/editor.api.ts
new file mode 100644
index 00000000..401981e4
--- /dev/null
+++ b/src/editor/editor.api.ts
@@ -0,0 +1,3 @@
+import './internal/initialize';
+/// @ts-ignore
+export * from 'monaco-editor-core/esm/vs/editor/editor.api';
diff --git a/src/editor/editor.main.ts b/src/editor/editor.main.ts
index 37a11ab3..293e2c7d 100644
--- a/src/editor/editor.main.ts
+++ b/src/editor/editor.main.ts
@@ -1,18 +1,14 @@
-import { createWebWorker } from '../common/workers.js';
-import '../basic-languages/monaco.contribution.js';
-import * as css from '../language/css/monaco.contribution.js';
-import * as html from '../language/html/monaco.contribution.js';
-import * as json from '../language/json/monaco.contribution.js';
-import * as typescript from '../language/typescript/monaco.contribution.js';
-import * as monaco from 'monaco-editor-core';
-export * from 'monaco-editor-core';
+import * as monaco from './internal/editorWithLanguages';
+import './internal/initialize';
+import { getGlobalMonaco } from './internal/initialize';
-export { css, html, json, typescript };
+export * from './internal/editorWithLanguages';
-const existingCreateWebWorker = monaco.editor.createWebWorker;
-monaco.editor.createWebWorker = function (options: any) {
- if (options.worker === undefined) {
- return createWebWorker(options);
- }
- return existingCreateWebWorker(options);
-} as any;
+// export to the global based API (for backwards compatibility only).
+// Warning: We can only write to objects, not modules / namespaces!
+// Writing to modules/namespace would confuse bundlers.
+const monacoApi = getGlobalMonaco();
+monacoApi.languages.css = monaco.css;
+monacoApi.languages.html = monaco.html;
+monacoApi.languages.typescript = monaco.typescript;
+monacoApi.languages.json = monaco.json;
diff --git a/src/editor/internal/editorWithLanguages.ts b/src/editor/internal/editorWithLanguages.ts
new file mode 100644
index 00000000..1919716f
--- /dev/null
+++ b/src/editor/internal/editorWithLanguages.ts
@@ -0,0 +1,10 @@
+import * as css from '../../language/css/monaco.contribution';
+import * as html from '../../language/html/monaco.contribution';
+import * as json from '../../language/json/monaco.contribution';
+import * as typescript from '../../language/typescript/monaco.contribution';
+import '../../basic-languages/monaco.contribution';
+import * as lsp from '@vscode/monaco-lsp-client';
+
+export * from 'monaco-editor-core';
+export { createWebWorker, type IWebWorkerOptions } from '../../common/workers';
+export { css, html, json, typescript, lsp };
diff --git a/src/editor/internal/initialize.ts b/src/editor/internal/initialize.ts
new file mode 100644
index 00000000..fa0e0bdc
--- /dev/null
+++ b/src/editor/internal/initialize.ts
@@ -0,0 +1,12 @@
+import * as monaco from 'monaco-editor-core/esm/vs/editor/editor.api';
+
+export function getGlobalMonaco(): any {
+ return monaco;
+}
+
+// TODO@hediet get rid of the monaco global
+
+const monacoEnvironment: monaco.Environment | undefined = (globalThis as any).MonacoEnvironment;
+if (monacoEnvironment?.globalAPI) {
+ (globalThis as any).monaco = getGlobalMonaco();
+}
diff --git a/src/language/css/monaco.contribution.ts b/src/language/css/monaco.contribution.ts
index f00e8f32..0e4e3f71 100644
--- a/src/language/css/monaco.contribution.ts
+++ b/src/language/css/monaco.contribution.ts
@@ -253,9 +253,6 @@ export const lessDefaults: LanguageServiceDefaults = new LanguageServiceDefaults
modeConfigurationDefault
);
-// export to the global based API
-(languages).css = { cssDefaults, lessDefaults, scssDefaults };
-
// --- Registration to monaco editor ---
function getMode(): Promise {
diff --git a/src/language/css/workerManager.ts b/src/language/css/workerManager.ts
index 00a472fe..b2463dc7 100644
--- a/src/language/css/workerManager.ts
+++ b/src/language/css/workerManager.ts
@@ -59,7 +59,7 @@ export class WorkerManager {
this._worker = createWebWorker({
// module that exports the create() method and returns a `CSSWorker` instance
moduleId: 'vs/language/css/cssWorker',
-
+ createWorker: () => new Worker(new URL('./css.worker', import.meta.url), { type: 'module' }),
label: this._defaults.languageId,
// passed in to the create() method
diff --git a/src/language/html/monaco.contribution.ts b/src/language/html/monaco.contribution.ts
index 67fb5ca5..9eda9784 100644
--- a/src/language/html/monaco.contribution.ts
+++ b/src/language/html/monaco.contribution.ts
@@ -215,17 +215,6 @@ export const razorLanguageService = registerHTMLLanguageService(
);
export const razorDefaults = razorLanguageService.defaults;
-// export to the global based API
-(languages).html = {
- htmlDefaults,
- razorDefaults,
- handlebarDefaults,
- htmlLanguageService,
- handlebarLanguageService,
- razorLanguageService,
- registerHTMLLanguageService
-};
-
// --- Registration to monaco editor ---
function getMode(): Promise {
diff --git a/src/language/html/workerManager.ts b/src/language/html/workerManager.ts
index a4c9cb04..3c559952 100644
--- a/src/language/html/workerManager.ts
+++ b/src/language/html/workerManager.ts
@@ -59,6 +59,7 @@ export class WorkerManager {
this._worker = createWebWorker({
// module that exports the create() method and returns a `HTMLWorker` instance
moduleId: 'vs/language/html/htmlWorker',
+ createWorker: () => new Worker(new URL('./html.worker', import.meta.url), { type: 'module' }),
// passed in to the create() method
createData: {
diff --git a/src/language/json/monaco.contribution.ts b/src/language/json/monaco.contribution.ts
index 2f3b6afe..851769a8 100644
--- a/src/language/json/monaco.contribution.ts
+++ b/src/language/json/monaco.contribution.ts
@@ -87,10 +87,10 @@ export interface JSONSchema {
minProperties?: number;
maxProperties?: number;
dependencies?:
- | JSONSchemaMap
- | {
- [prop: string]: string[];
- };
+ | JSONSchemaMap
+ | {
+ [prop: string]: string[];
+ };
items?: JSONSchemaRef | JSONSchemaRef[];
minItems?: number;
maxItems?: number;
@@ -342,9 +342,6 @@ export interface IJSONWorker {
export const getWorker = (): Promise<(...uris: Uri[]) => Promise> =>
getMode().then((mode) => mode.getWorker());
-// export to the global based API
-(languages).json = { jsonDefaults, getWorker };
-
// --- Registration to monaco editor ---
function getMode(): Promise {
diff --git a/src/language/json/workerManager.ts b/src/language/json/workerManager.ts
index 9af92e0d..b2e66d31 100644
--- a/src/language/json/workerManager.ts
+++ b/src/language/json/workerManager.ts
@@ -59,6 +59,7 @@ export class WorkerManager {
this._worker = createWebWorker({
// module that exports the create() method and returns a `JSONWorker` instance
moduleId: 'vs/language/json/jsonWorker',
+ createWorker: () => new Worker(new URL('./json.worker', import.meta.url), { type: 'module' }),
label: this._defaults.languageId,
diff --git a/src/language/typescript/lib/lib.index.ts b/src/language/typescript/lib/lib.index.ts
index 8414cb28..d1a78187 100644
--- a/src/language/typescript/lib/lib.index.ts
+++ b/src/language/typescript/lib/lib.index.ts
@@ -29,6 +29,7 @@ libFileSet['lib.es2016.array.include.d.ts'] = true;
libFileSet['lib.es2016.d.ts'] = true;
libFileSet['lib.es2016.full.d.ts'] = true;
libFileSet['lib.es2016.intl.d.ts'] = true;
+libFileSet['lib.es2017.arraybuffer.d.ts'] = true;
libFileSet['lib.es2017.d.ts'] = true;
libFileSet['lib.es2017.date.d.ts'] = true;
libFileSet['lib.es2017.full.d.ts'] = true;
@@ -74,22 +75,35 @@ libFileSet['lib.es2022.full.d.ts'] = true;
libFileSet['lib.es2022.intl.d.ts'] = true;
libFileSet['lib.es2022.object.d.ts'] = true;
libFileSet['lib.es2022.regexp.d.ts'] = true;
-libFileSet['lib.es2022.sharedmemory.d.ts'] = true;
libFileSet['lib.es2022.string.d.ts'] = true;
libFileSet['lib.es2023.array.d.ts'] = true;
libFileSet['lib.es2023.collection.d.ts'] = true;
libFileSet['lib.es2023.d.ts'] = true;
libFileSet['lib.es2023.full.d.ts'] = true;
+libFileSet['lib.es2023.intl.d.ts'] = true;
+libFileSet['lib.es2024.arraybuffer.d.ts'] = true;
+libFileSet['lib.es2024.collection.d.ts'] = true;
+libFileSet['lib.es2024.d.ts'] = true;
+libFileSet['lib.es2024.full.d.ts'] = true;
+libFileSet['lib.es2024.object.d.ts'] = true;
+libFileSet['lib.es2024.promise.d.ts'] = true;
+libFileSet['lib.es2024.regexp.d.ts'] = true;
+libFileSet['lib.es2024.sharedmemory.d.ts'] = true;
+libFileSet['lib.es2024.string.d.ts'] = true;
libFileSet['lib.es5.d.ts'] = true;
libFileSet['lib.es6.d.ts'] = true;
+libFileSet['lib.esnext.array.d.ts'] = true;
libFileSet['lib.esnext.collection.d.ts'] = true;
libFileSet['lib.esnext.d.ts'] = true;
libFileSet['lib.esnext.decorators.d.ts'] = true;
libFileSet['lib.esnext.disposable.d.ts'] = true;
+libFileSet['lib.esnext.error.d.ts'] = true;
+libFileSet['lib.esnext.float16.d.ts'] = true;
libFileSet['lib.esnext.full.d.ts'] = true;
libFileSet['lib.esnext.intl.d.ts'] = true;
-libFileSet['lib.esnext.object.d.ts'] = true;
+libFileSet['lib.esnext.iterator.d.ts'] = true;
libFileSet['lib.esnext.promise.d.ts'] = true;
+libFileSet['lib.esnext.sharedmemory.d.ts'] = true;
libFileSet['lib.scripthost.d.ts'] = true;
libFileSet['lib.webworker.asynciterable.d.ts'] = true;
libFileSet['lib.webworker.d.ts'] = true;
diff --git a/src/language/typescript/lib/lib.ts b/src/language/typescript/lib/lib.ts
index 5ea15021..4a3ff8fb 100644
--- a/src/language/typescript/lib/lib.ts
+++ b/src/language/typescript/lib/lib.ts
@@ -10,88 +10,102 @@
/** Contains all the lib files */
export const libFileMap: Record = {}
libFileMap['lib.d.ts'] = "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/// \n/// \n/// \n/// \n";
-libFileMap['lib.decorators.d.ts'] = "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/**\n * The decorator context types provided to class element decorators.\n */\ntype ClassMemberDecoratorContext =\n | ClassMethodDecoratorContext\n | ClassGetterDecoratorContext\n | ClassSetterDecoratorContext\n | ClassFieldDecoratorContext\n | ClassAccessorDecoratorContext;\n\n/**\n * The decorator context types provided to any decorator.\n */\ntype DecoratorContext =\n | ClassDecoratorContext\n | ClassMemberDecoratorContext;\n\ntype DecoratorMetadataObject = Record & object;\n\ntype DecoratorMetadata = typeof globalThis extends { Symbol: { readonly metadata: symbol; }; } ? DecoratorMetadataObject : DecoratorMetadataObject | undefined;\n\n/**\n * Context provided to a class decorator.\n * @template Class The type of the decorated class associated with this context.\n */\ninterface ClassDecoratorContext<\n Class extends abstract new (...args: any) => any = abstract new (...args: any) => any,\n> {\n /** The kind of element that was decorated. */\n readonly kind: \"class\";\n\n /** The name of the decorated class. */\n readonly name: string | undefined;\n\n /**\n * Adds a callback to be invoked after the class definition has been finalized.\n *\n * @example\n * ```ts\n * function customElement(name: string): ClassDecoratorFunction {\n * return (target, context) => {\n * context.addInitializer(function () {\n * customElements.define(name, this);\n * });\n * }\n * }\n *\n * @customElement(\"my-element\")\n * class MyElement {}\n * ```\n */\n addInitializer(initializer: (this: Class) => void): void;\n\n readonly metadata: DecoratorMetadata;\n}\n\n/**\n * Context provided to a class method decorator.\n * @template This The type on which the class element will be defined. For a static class element, this will be\n * the type of the constructor. For a non-static class element, this will be the type of the instance.\n * @template Value The type of the decorated class method.\n */\ninterface ClassMethodDecoratorContext<\n This = unknown,\n Value extends (this: This, ...args: any) => any = (this: This, ...args: any) => any,\n> {\n /** The kind of class element that was decorated. */\n readonly kind: \"method\";\n\n /** The name of the decorated class element. */\n readonly name: string | symbol;\n\n /** A value indicating whether the class element is a static (`true`) or instance (`false`) element. */\n readonly static: boolean;\n\n /** A value indicating whether the class element has a private name. */\n readonly private: boolean;\n\n /** An object that can be used to access the current value of the class element at runtime. */\n readonly access: {\n /**\n * Determines whether an object has a property with the same name as the decorated element.\n */\n has(object: This): boolean;\n /**\n * Gets the current value of the method from the provided object.\n *\n * @example\n * let fn = context.access.get(instance);\n */\n get(object: This): Value;\n };\n\n /**\n * Adds a callback to be invoked either before static initializers are run (when\n * decorating a `static` element), or before instance initializers are run (when\n * decorating a non-`static` element).\n *\n * @example\n * ```ts\n * const bound: ClassMethodDecoratorFunction = (value, context) {\n * if (context.private) throw new TypeError(\"Not supported on private methods.\");\n * context.addInitializer(function () {\n * this[context.name] = this[context.name].bind(this);\n * });\n * }\n *\n * class C {\n * message = \"Hello\";\n *\n * @bound\n * m() {\n * console.log(this.message);\n * }\n * }\n * ```\n */\n addInitializer(initializer: (this: This) => void): void;\n\n readonly metadata: DecoratorMetadata;\n}\n\n/**\n * Context provided to a class getter decorator.\n * @template This The type on which the class element will be defined. For a static class element, this will be\n * the type of the constructor. For a non-static class element, this will be the type of the instance.\n * @template Value The property type of the decorated class getter.\n */\ninterface ClassGetterDecoratorContext<\n This = unknown,\n Value = unknown,\n> {\n /** The kind of class element that was decorated. */\n readonly kind: \"getter\";\n\n /** The name of the decorated class element. */\n readonly name: string | symbol;\n\n /** A value indicating whether the class element is a static (`true`) or instance (`false`) element. */\n readonly static: boolean;\n\n /** A value indicating whether the class element has a private name. */\n readonly private: boolean;\n\n /** An object that can be used to access the current value of the class element at runtime. */\n readonly access: {\n /**\n * Determines whether an object has a property with the same name as the decorated element.\n */\n has(object: This): boolean;\n /**\n * Invokes the getter on the provided object.\n *\n * @example\n * let value = context.access.get(instance);\n */\n get(object: This): Value;\n };\n\n /**\n * Adds a callback to be invoked either before static initializers are run (when\n * decorating a `static` element), or before instance initializers are run (when\n * decorating a non-`static` element).\n */\n addInitializer(initializer: (this: This) => void): void;\n\n readonly metadata: DecoratorMetadata;\n}\n\n/**\n * Context provided to a class setter decorator.\n * @template This The type on which the class element will be defined. For a static class element, this will be\n * the type of the constructor. For a non-static class element, this will be the type of the instance.\n * @template Value The type of the decorated class setter.\n */\ninterface ClassSetterDecoratorContext<\n This = unknown,\n Value = unknown,\n> {\n /** The kind of class element that was decorated. */\n readonly kind: \"setter\";\n\n /** The name of the decorated class element. */\n readonly name: string | symbol;\n\n /** A value indicating whether the class element is a static (`true`) or instance (`false`) element. */\n readonly static: boolean;\n\n /** A value indicating whether the class element has a private name. */\n readonly private: boolean;\n\n /** An object that can be used to access the current value of the class element at runtime. */\n readonly access: {\n /**\n * Determines whether an object has a property with the same name as the decorated element.\n */\n has(object: This): boolean;\n /**\n * Invokes the setter on the provided object.\n *\n * @example\n * context.access.set(instance, value);\n */\n set(object: This, value: Value): void;\n };\n\n /**\n * Adds a callback to be invoked either before static initializers are run (when\n * decorating a `static` element), or before instance initializers are run (when\n * decorating a non-`static` element).\n */\n addInitializer(initializer: (this: This) => void): void;\n\n readonly metadata: DecoratorMetadata;\n}\n\n/**\n * Context provided to a class `accessor` field decorator.\n * @template This The type on which the class element will be defined. For a static class element, this will be\n * the type of the constructor. For a non-static class element, this will be the type of the instance.\n * @template Value The type of decorated class field.\n */\ninterface ClassAccessorDecoratorContext<\n This = unknown,\n Value = unknown,\n> {\n /** The kind of class element that was decorated. */\n readonly kind: \"accessor\";\n\n /** The name of the decorated class element. */\n readonly name: string | symbol;\n\n /** A value indicating whether the class element is a static (`true`) or instance (`false`) element. */\n readonly static: boolean;\n\n /** A value indicating whether the class element has a private name. */\n readonly private: boolean;\n\n /** An object that can be used to access the current value of the class element at runtime. */\n readonly access: {\n /**\n * Determines whether an object has a property with the same name as the decorated element.\n */\n has(object: This): boolean;\n\n /**\n * Invokes the getter on the provided object.\n *\n * @example\n * let value = context.access.get(instance);\n */\n get(object: This): Value;\n\n /**\n * Invokes the setter on the provided object.\n *\n * @example\n * context.access.set(instance, value);\n */\n set(object: This, value: Value): void;\n };\n\n /**\n * Adds a callback to be invoked either before static initializers are run (when\n * decorating a `static` element), or before instance initializers are run (when\n * decorating a non-`static` element).\n */\n addInitializer(initializer: (this: This) => void): void;\n\n readonly metadata: DecoratorMetadata;\n}\n\n/**\n * Describes the target provided to class `accessor` field decorators.\n * @template This The `this` type to which the target applies.\n * @template Value The property type for the class `accessor` field.\n */\ninterface ClassAccessorDecoratorTarget {\n /**\n * Invokes the getter that was defined prior to decorator application.\n *\n * @example\n * let value = target.get.call(instance);\n */\n get(this: This): Value;\n\n /**\n * Invokes the setter that was defined prior to decorator application.\n *\n * @example\n * target.set.call(instance, value);\n */\n set(this: This, value: Value): void;\n}\n\n/**\n * Describes the allowed return value from a class `accessor` field decorator.\n * @template This The `this` type to which the target applies.\n * @template Value The property type for the class `accessor` field.\n */\ninterface ClassAccessorDecoratorResult {\n /**\n * An optional replacement getter function. If not provided, the existing getter function is used instead.\n */\n get?(this: This): Value;\n\n /**\n * An optional replacement setter function. If not provided, the existing setter function is used instead.\n */\n set?(this: This, value: Value): void;\n\n /**\n * An optional initializer mutator that is invoked when the underlying field initializer is evaluated.\n * @param value The incoming initializer value.\n * @returns The replacement initializer value.\n */\n init?(this: This, value: Value): Value;\n}\n\n/**\n * Context provided to a class field decorator.\n * @template This The type on which the class element will be defined. For a static class element, this will be\n * the type of the constructor. For a non-static class element, this will be the type of the instance.\n * @template Value The type of the decorated class field.\n */\ninterface ClassFieldDecoratorContext<\n This = unknown,\n Value = unknown,\n> {\n /** The kind of class element that was decorated. */\n readonly kind: \"field\";\n\n /** The name of the decorated class element. */\n readonly name: string | symbol;\n\n /** A value indicating whether the class element is a static (`true`) or instance (`false`) element. */\n readonly static: boolean;\n\n /** A value indicating whether the class element has a private name. */\n readonly private: boolean;\n\n /** An object that can be used to access the current value of the class element at runtime. */\n readonly access: {\n /**\n * Determines whether an object has a property with the same name as the decorated element.\n */\n has(object: This): boolean;\n\n /**\n * Gets the value of the field on the provided object.\n */\n get(object: This): Value;\n\n /**\n * Sets the value of the field on the provided object.\n */\n set(object: This, value: Value): void;\n };\n\n /**\n * Adds a callback to be invoked either before static initializers are run (when\n * decorating a `static` element), or before instance initializers are run (when\n * decorating a non-`static` element).\n */\n addInitializer(initializer: (this: This) => void): void;\n\n readonly metadata: DecoratorMetadata;\n}\n";
+libFileMap['lib.decorators.d.ts'] = "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/**\n * The decorator context types provided to class element decorators.\n */\ntype ClassMemberDecoratorContext =\n | ClassMethodDecoratorContext\n | ClassGetterDecoratorContext\n | ClassSetterDecoratorContext\n | ClassFieldDecoratorContext\n | ClassAccessorDecoratorContext;\n\n/**\n * The decorator context types provided to any decorator.\n */\ntype DecoratorContext =\n | ClassDecoratorContext\n | ClassMemberDecoratorContext;\n\ntype DecoratorMetadataObject = Record & object;\n\ntype DecoratorMetadata = typeof globalThis extends { Symbol: { readonly metadata: symbol; }; } ? DecoratorMetadataObject : DecoratorMetadataObject | undefined;\n\n/**\n * Context provided to a class decorator.\n * @template Class The type of the decorated class associated with this context.\n */\ninterface ClassDecoratorContext<\n Class extends abstract new (...args: any) => any = abstract new (...args: any) => any,\n> {\n /** The kind of element that was decorated. */\n readonly kind: \"class\";\n\n /** The name of the decorated class. */\n readonly name: string | undefined;\n\n /**\n * Adds a callback to be invoked after the class definition has been finalized.\n *\n * @example\n * ```ts\n * function customElement(name: string): ClassDecoratorFunction {\n * return (target, context) => {\n * context.addInitializer(function () {\n * customElements.define(name, this);\n * });\n * }\n * }\n *\n * @customElement(\"my-element\")\n * class MyElement {}\n * ```\n */\n addInitializer(initializer: (this: Class) => void): void;\n\n readonly metadata: DecoratorMetadata;\n}\n\n/**\n * Context provided to a class method decorator.\n * @template This The type on which the class element will be defined. For a static class element, this will be\n * the type of the constructor. For a non-static class element, this will be the type of the instance.\n * @template Value The type of the decorated class method.\n */\ninterface ClassMethodDecoratorContext<\n This = unknown,\n Value extends (this: This, ...args: any) => any = (this: This, ...args: any) => any,\n> {\n /** The kind of class element that was decorated. */\n readonly kind: \"method\";\n\n /** The name of the decorated class element. */\n readonly name: string | symbol;\n\n /** A value indicating whether the class element is a static (`true`) or instance (`false`) element. */\n readonly static: boolean;\n\n /** A value indicating whether the class element has a private name. */\n readonly private: boolean;\n\n /** An object that can be used to access the current value of the class element at runtime. */\n readonly access: {\n /**\n * Determines whether an object has a property with the same name as the decorated element.\n */\n has(object: This): boolean;\n /**\n * Gets the current value of the method from the provided object.\n *\n * @example\n * let fn = context.access.get(instance);\n */\n get(object: This): Value;\n };\n\n /**\n * Adds a callback to be invoked either after static methods are defined but before\n * static initializers are run (when decorating a `static` element), or before instance\n * initializers are run (when decorating a non-`static` element).\n *\n * @example\n * ```ts\n * const bound: ClassMethodDecoratorFunction = (value, context) {\n * if (context.private) throw new TypeError(\"Not supported on private methods.\");\n * context.addInitializer(function () {\n * this[context.name] = this[context.name].bind(this);\n * });\n * }\n *\n * class C {\n * message = \"Hello\";\n *\n * @bound\n * m() {\n * console.log(this.message);\n * }\n * }\n * ```\n */\n addInitializer(initializer: (this: This) => void): void;\n\n readonly metadata: DecoratorMetadata;\n}\n\n/**\n * Context provided to a class getter decorator.\n * @template This The type on which the class element will be defined. For a static class element, this will be\n * the type of the constructor. For a non-static class element, this will be the type of the instance.\n * @template Value The property type of the decorated class getter.\n */\ninterface ClassGetterDecoratorContext<\n This = unknown,\n Value = unknown,\n> {\n /** The kind of class element that was decorated. */\n readonly kind: \"getter\";\n\n /** The name of the decorated class element. */\n readonly name: string | symbol;\n\n /** A value indicating whether the class element is a static (`true`) or instance (`false`) element. */\n readonly static: boolean;\n\n /** A value indicating whether the class element has a private name. */\n readonly private: boolean;\n\n /** An object that can be used to access the current value of the class element at runtime. */\n readonly access: {\n /**\n * Determines whether an object has a property with the same name as the decorated element.\n */\n has(object: This): boolean;\n /**\n * Invokes the getter on the provided object.\n *\n * @example\n * let value = context.access.get(instance);\n */\n get(object: This): Value;\n };\n\n /**\n * Adds a callback to be invoked either after static methods are defined but before\n * static initializers are run (when decorating a `static` element), or before instance\n * initializers are run (when decorating a non-`static` element).\n */\n addInitializer(initializer: (this: This) => void): void;\n\n readonly metadata: DecoratorMetadata;\n}\n\n/**\n * Context provided to a class setter decorator.\n * @template This The type on which the class element will be defined. For a static class element, this will be\n * the type of the constructor. For a non-static class element, this will be the type of the instance.\n * @template Value The type of the decorated class setter.\n */\ninterface ClassSetterDecoratorContext<\n This = unknown,\n Value = unknown,\n> {\n /** The kind of class element that was decorated. */\n readonly kind: \"setter\";\n\n /** The name of the decorated class element. */\n readonly name: string | symbol;\n\n /** A value indicating whether the class element is a static (`true`) or instance (`false`) element. */\n readonly static: boolean;\n\n /** A value indicating whether the class element has a private name. */\n readonly private: boolean;\n\n /** An object that can be used to access the current value of the class element at runtime. */\n readonly access: {\n /**\n * Determines whether an object has a property with the same name as the decorated element.\n */\n has(object: This): boolean;\n /**\n * Invokes the setter on the provided object.\n *\n * @example\n * context.access.set(instance, value);\n */\n set(object: This, value: Value): void;\n };\n\n /**\n * Adds a callback to be invoked either after static methods are defined but before\n * static initializers are run (when decorating a `static` element), or before instance\n * initializers are run (when decorating a non-`static` element).\n */\n addInitializer(initializer: (this: This) => void): void;\n\n readonly metadata: DecoratorMetadata;\n}\n\n/**\n * Context provided to a class `accessor` field decorator.\n * @template This The type on which the class element will be defined. For a static class element, this will be\n * the type of the constructor. For a non-static class element, this will be the type of the instance.\n * @template Value The type of decorated class field.\n */\ninterface ClassAccessorDecoratorContext<\n This = unknown,\n Value = unknown,\n> {\n /** The kind of class element that was decorated. */\n readonly kind: \"accessor\";\n\n /** The name of the decorated class element. */\n readonly name: string | symbol;\n\n /** A value indicating whether the class element is a static (`true`) or instance (`false`) element. */\n readonly static: boolean;\n\n /** A value indicating whether the class element has a private name. */\n readonly private: boolean;\n\n /** An object that can be used to access the current value of the class element at runtime. */\n readonly access: {\n /**\n * Determines whether an object has a property with the same name as the decorated element.\n */\n has(object: This): boolean;\n\n /**\n * Invokes the getter on the provided object.\n *\n * @example\n * let value = context.access.get(instance);\n */\n get(object: This): Value;\n\n /**\n * Invokes the setter on the provided object.\n *\n * @example\n * context.access.set(instance, value);\n */\n set(object: This, value: Value): void;\n };\n\n /**\n * Adds a callback to be invoked immediately after the auto `accessor` being\n * decorated is initialized (regardless if the `accessor` is `static` or not).\n */\n addInitializer(initializer: (this: This) => void): void;\n\n readonly metadata: DecoratorMetadata;\n}\n\n/**\n * Describes the target provided to class `accessor` field decorators.\n * @template This The `this` type to which the target applies.\n * @template Value The property type for the class `accessor` field.\n */\ninterface ClassAccessorDecoratorTarget {\n /**\n * Invokes the getter that was defined prior to decorator application.\n *\n * @example\n * let value = target.get.call(instance);\n */\n get(this: This): Value;\n\n /**\n * Invokes the setter that was defined prior to decorator application.\n *\n * @example\n * target.set.call(instance, value);\n */\n set(this: This, value: Value): void;\n}\n\n/**\n * Describes the allowed return value from a class `accessor` field decorator.\n * @template This The `this` type to which the target applies.\n * @template Value The property type for the class `accessor` field.\n */\ninterface ClassAccessorDecoratorResult {\n /**\n * An optional replacement getter function. If not provided, the existing getter function is used instead.\n */\n get?(this: This): Value;\n\n /**\n * An optional replacement setter function. If not provided, the existing setter function is used instead.\n */\n set?(this: This, value: Value): void;\n\n /**\n * An optional initializer mutator that is invoked when the underlying field initializer is evaluated.\n * @param value The incoming initializer value.\n * @returns The replacement initializer value.\n */\n init?(this: This, value: Value): Value;\n}\n\n/**\n * Context provided to a class field decorator.\n * @template This The type on which the class element will be defined. For a static class element, this will be\n * the type of the constructor. For a non-static class element, this will be the type of the instance.\n * @template Value The type of the decorated class field.\n */\ninterface ClassFieldDecoratorContext<\n This = unknown,\n Value = unknown,\n> {\n /** The kind of class element that was decorated. */\n readonly kind: \"field\";\n\n /** The name of the decorated class element. */\n readonly name: string | symbol;\n\n /** A value indicating whether the class element is a static (`true`) or instance (`false`) element. */\n readonly static: boolean;\n\n /** A value indicating whether the class element has a private name. */\n readonly private: boolean;\n\n /** An object that can be used to access the current value of the class element at runtime. */\n readonly access: {\n /**\n * Determines whether an object has a property with the same name as the decorated element.\n */\n has(object: This): boolean;\n\n /**\n * Gets the value of the field on the provided object.\n */\n get(object: This): Value;\n\n /**\n * Sets the value of the field on the provided object.\n */\n set(object: This, value: Value): void;\n };\n\n /**\n * Adds a callback to be invoked immediately after the field being decorated\n * is initialized (regardless if the field is `static` or not).\n */\n addInitializer(initializer: (this: This) => void): void;\n\n readonly metadata: DecoratorMetadata;\n}\n";
libFileMap['lib.decorators.legacy.d.ts'] = "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\ndeclare type ClassDecorator = (target: TFunction) => TFunction | void;\ndeclare type PropertyDecorator = (target: Object, propertyKey: string | symbol) => void;\ndeclare type MethodDecorator = (target: Object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor | void;\ndeclare type ParameterDecorator = (target: Object, propertyKey: string | symbol | undefined, parameterIndex: number) => void;\n";
-libFileMap['lib.dom.asynciterable.d.ts'] = "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/////////////////////////////\n/// Window Async Iterable APIs\n/////////////////////////////\n\ninterface FileSystemDirectoryHandle {\n [Symbol.asyncIterator](): AsyncIterableIterator<[string, FileSystemHandle]>;\n entries(): AsyncIterableIterator<[string, FileSystemHandle]>;\n keys(): AsyncIterableIterator;\n values(): AsyncIterableIterator;\n}\n";
-libFileMap['lib.dom.d.ts'] = "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\n\n/// \n\n/////////////////////////////\n/// Window APIs\n/////////////////////////////\n\ninterface AddEventListenerOptions extends EventListenerOptions {\n once?: boolean;\n passive?: boolean;\n signal?: AbortSignal;\n}\n\ninterface AesCbcParams extends Algorithm {\n iv: BufferSource;\n}\n\ninterface AesCtrParams extends Algorithm {\n counter: BufferSource;\n length: number;\n}\n\ninterface AesDerivedKeyParams extends Algorithm {\n length: number;\n}\n\ninterface AesGcmParams extends Algorithm {\n additionalData?: BufferSource;\n iv: BufferSource;\n tagLength?: number;\n}\n\ninterface AesKeyAlgorithm extends KeyAlgorithm {\n length: number;\n}\n\ninterface AesKeyGenParams extends Algorithm {\n length: number;\n}\n\ninterface Algorithm {\n name: string;\n}\n\ninterface AnalyserOptions extends AudioNodeOptions {\n fftSize?: number;\n maxDecibels?: number;\n minDecibels?: number;\n smoothingTimeConstant?: number;\n}\n\ninterface AnimationEventInit extends EventInit {\n animationName?: string;\n elapsedTime?: number;\n pseudoElement?: string;\n}\n\ninterface AnimationPlaybackEventInit extends EventInit {\n currentTime?: CSSNumberish | null;\n timelineTime?: CSSNumberish | null;\n}\n\ninterface AssignedNodesOptions {\n flatten?: boolean;\n}\n\ninterface AudioBufferOptions {\n length: number;\n numberOfChannels?: number;\n sampleRate: number;\n}\n\ninterface AudioBufferSourceOptions {\n buffer?: AudioBuffer | null;\n detune?: number;\n loop?: boolean;\n loopEnd?: number;\n loopStart?: number;\n playbackRate?: number;\n}\n\ninterface AudioConfiguration {\n bitrate?: number;\n channels?: string;\n contentType: string;\n samplerate?: number;\n spatialRendering?: boolean;\n}\n\ninterface AudioContextOptions {\n latencyHint?: AudioContextLatencyCategory | number;\n sampleRate?: number;\n}\n\ninterface AudioNodeOptions {\n channelCount?: number;\n channelCountMode?: ChannelCountMode;\n channelInterpretation?: ChannelInterpretation;\n}\n\ninterface AudioProcessingEventInit extends EventInit {\n inputBuffer: AudioBuffer;\n outputBuffer: AudioBuffer;\n playbackTime: number;\n}\n\ninterface AudioTimestamp {\n contextTime?: number;\n performanceTime?: DOMHighResTimeStamp;\n}\n\ninterface AudioWorkletNodeOptions extends AudioNodeOptions {\n numberOfInputs?: number;\n numberOfOutputs?: number;\n outputChannelCount?: number[];\n parameterData?: Record;\n processorOptions?: any;\n}\n\ninterface AuthenticationExtensionsClientInputs {\n appid?: string;\n credProps?: boolean;\n hmacCreateSecret?: boolean;\n minPinLength?: boolean;\n}\n\ninterface AuthenticationExtensionsClientOutputs {\n appid?: boolean;\n credProps?: CredentialPropertiesOutput;\n hmacCreateSecret?: boolean;\n}\n\ninterface AuthenticatorSelectionCriteria {\n authenticatorAttachment?: AuthenticatorAttachment;\n requireResidentKey?: boolean;\n residentKey?: ResidentKeyRequirement;\n userVerification?: UserVerificationRequirement;\n}\n\ninterface AvcEncoderConfig {\n format?: AvcBitstreamFormat;\n}\n\ninterface BiquadFilterOptions extends AudioNodeOptions {\n Q?: number;\n detune?: number;\n frequency?: number;\n gain?: number;\n type?: BiquadFilterType;\n}\n\ninterface BlobEventInit {\n data: Blob;\n timecode?: DOMHighResTimeStamp;\n}\n\ninterface BlobPropertyBag {\n endings?: EndingType;\n type?: string;\n}\n\ninterface CSSMatrixComponentOptions {\n is2D?: boolean;\n}\n\ninterface CSSNumericType {\n angle?: number;\n flex?: number;\n frequency?: number;\n length?: number;\n percent?: number;\n percentHint?: CSSNumericBaseType;\n resolution?: number;\n time?: number;\n}\n\ninterface CSSStyleSheetInit {\n baseURL?: string;\n disabled?: boolean;\n media?: MediaList | string;\n}\n\ninterface CacheQueryOptions {\n ignoreMethod?: boolean;\n ignoreSearch?: boolean;\n ignoreVary?: boolean;\n}\n\ninterface CanvasRenderingContext2DSettings {\n alpha?: boolean;\n colorSpace?: PredefinedColorSpace;\n desynchronized?: boolean;\n willReadFrequently?: boolean;\n}\n\ninterface ChannelMergerOptions extends AudioNodeOptions {\n numberOfInputs?: number;\n}\n\ninterface ChannelSplitterOptions extends AudioNodeOptions {\n numberOfOutputs?: number;\n}\n\ninterface CheckVisibilityOptions {\n checkOpacity?: boolean;\n checkVisibilityCSS?: boolean;\n}\n\ninterface ClientQueryOptions {\n includeUncontrolled?: boolean;\n type?: ClientTypes;\n}\n\ninterface ClipboardEventInit extends EventInit {\n clipboardData?: DataTransfer | null;\n}\n\ninterface ClipboardItemOptions {\n presentationStyle?: PresentationStyle;\n}\n\ninterface CloseEventInit extends EventInit {\n code?: number;\n reason?: string;\n wasClean?: boolean;\n}\n\ninterface CompositionEventInit extends UIEventInit {\n data?: string;\n}\n\ninterface ComputedEffectTiming extends EffectTiming {\n activeDuration?: CSSNumberish;\n currentIteration?: number | null;\n endTime?: CSSNumberish;\n localTime?: CSSNumberish | null;\n progress?: number | null;\n startTime?: CSSNumberish;\n}\n\ninterface ComputedKeyframe {\n composite: CompositeOperationOrAuto;\n computedOffset: number;\n easing: string;\n offset: number | null;\n [property: string]: string | number | null | undefined;\n}\n\ninterface ConstantSourceOptions {\n offset?: number;\n}\n\ninterface ConstrainBooleanParameters {\n exact?: boolean;\n ideal?: boolean;\n}\n\ninterface ConstrainDOMStringParameters {\n exact?: string | string[];\n ideal?: string | string[];\n}\n\ninterface ConstrainDoubleRange extends DoubleRange {\n exact?: number;\n ideal?: number;\n}\n\ninterface ConstrainULongRange extends ULongRange {\n exact?: number;\n ideal?: number;\n}\n\ninterface ConvolverOptions extends AudioNodeOptions {\n buffer?: AudioBuffer | null;\n disableNormalization?: boolean;\n}\n\ninterface CredentialCreationOptions {\n publicKey?: PublicKeyCredentialCreationOptions;\n signal?: AbortSignal;\n}\n\ninterface CredentialPropertiesOutput {\n rk?: boolean;\n}\n\ninterface CredentialRequestOptions {\n mediation?: CredentialMediationRequirement;\n publicKey?: PublicKeyCredentialRequestOptions;\n signal?: AbortSignal;\n}\n\ninterface CryptoKeyPair {\n privateKey: CryptoKey;\n publicKey: CryptoKey;\n}\n\ninterface CustomEventInit extends EventInit {\n detail?: T;\n}\n\ninterface DOMMatrix2DInit {\n a?: number;\n b?: number;\n c?: number;\n d?: number;\n e?: number;\n f?: number;\n m11?: number;\n m12?: number;\n m21?: number;\n m22?: number;\n m41?: number;\n m42?: number;\n}\n\ninterface DOMMatrixInit extends DOMMatrix2DInit {\n is2D?: boolean;\n m13?: number;\n m14?: number;\n m23?: number;\n m24?: number;\n m31?: number;\n m32?: number;\n m33?: number;\n m34?: number;\n m43?: number;\n m44?: number;\n}\n\ninterface DOMPointInit {\n w?: number;\n x?: number;\n y?: number;\n z?: number;\n}\n\ninterface DOMQuadInit {\n p1?: DOMPointInit;\n p2?: DOMPointInit;\n p3?: DOMPointInit;\n p4?: DOMPointInit;\n}\n\ninterface DOMRectInit {\n height?: number;\n width?: number;\n x?: number;\n y?: number;\n}\n\ninterface DelayOptions extends AudioNodeOptions {\n delayTime?: number;\n maxDelayTime?: number;\n}\n\ninterface DeviceMotionEventAccelerationInit {\n x?: number | null;\n y?: number | null;\n z?: number | null;\n}\n\ninterface DeviceMotionEventInit extends EventInit {\n acceleration?: DeviceMotionEventAccelerationInit;\n accelerationIncludingGravity?: DeviceMotionEventAccelerationInit;\n interval?: number;\n rotationRate?: DeviceMotionEventRotationRateInit;\n}\n\ninterface DeviceMotionEventRotationRateInit {\n alpha?: number | null;\n beta?: number | null;\n gamma?: number | null;\n}\n\ninterface DeviceOrientationEventInit extends EventInit {\n absolute?: boolean;\n alpha?: number | null;\n beta?: number | null;\n gamma?: number | null;\n}\n\ninterface DisplayMediaStreamOptions {\n audio?: boolean | MediaTrackConstraints;\n video?: boolean | MediaTrackConstraints;\n}\n\ninterface DocumentTimelineOptions {\n originTime?: DOMHighResTimeStamp;\n}\n\ninterface DoubleRange {\n max?: number;\n min?: number;\n}\n\ninterface DragEventInit extends MouseEventInit {\n dataTransfer?: DataTransfer | null;\n}\n\ninterface DynamicsCompressorOptions extends AudioNodeOptions {\n attack?: number;\n knee?: number;\n ratio?: number;\n release?: number;\n threshold?: number;\n}\n\ninterface EcKeyAlgorithm extends KeyAlgorithm {\n namedCurve: NamedCurve;\n}\n\ninterface EcKeyGenParams extends Algorithm {\n namedCurve: NamedCurve;\n}\n\ninterface EcKeyImportParams extends Algorithm {\n namedCurve: NamedCurve;\n}\n\ninterface EcdhKeyDeriveParams extends Algorithm {\n public: CryptoKey;\n}\n\ninterface EcdsaParams extends Algorithm {\n hash: HashAlgorithmIdentifier;\n}\n\ninterface EffectTiming {\n delay?: number;\n direction?: PlaybackDirection;\n duration?: number | CSSNumericValue | string;\n easing?: string;\n endDelay?: number;\n fill?: FillMode;\n iterationStart?: number;\n iterations?: number;\n playbackRate?: number;\n}\n\ninterface ElementCreationOptions {\n is?: string;\n}\n\ninterface ElementDefinitionOptions {\n extends?: string;\n}\n\ninterface EncodedVideoChunkInit {\n data: AllowSharedBufferSource;\n duration?: number;\n timestamp: number;\n type: EncodedVideoChunkType;\n}\n\ninterface EncodedVideoChunkMetadata {\n decoderConfig?: VideoDecoderConfig;\n}\n\ninterface ErrorEventInit extends EventInit {\n colno?: number;\n error?: any;\n filename?: string;\n lineno?: number;\n message?: string;\n}\n\ninterface EventInit {\n bubbles?: boolean;\n cancelable?: boolean;\n composed?: boolean;\n}\n\ninterface EventListenerOptions {\n capture?: boolean;\n}\n\ninterface EventModifierInit extends UIEventInit {\n altKey?: boolean;\n ctrlKey?: boolean;\n metaKey?: boolean;\n modifierAltGraph?: boolean;\n modifierCapsLock?: boolean;\n modifierFn?: boolean;\n modifierFnLock?: boolean;\n modifierHyper?: boolean;\n modifierNumLock?: boolean;\n modifierScrollLock?: boolean;\n modifierSuper?: boolean;\n modifierSymbol?: boolean;\n modifierSymbolLock?: boolean;\n shiftKey?: boolean;\n}\n\ninterface EventSourceInit {\n withCredentials?: boolean;\n}\n\ninterface FilePropertyBag extends BlobPropertyBag {\n lastModified?: number;\n}\n\ninterface FileSystemCreateWritableOptions {\n keepExistingData?: boolean;\n}\n\ninterface FileSystemFlags {\n create?: boolean;\n exclusive?: boolean;\n}\n\ninterface FileSystemGetDirectoryOptions {\n create?: boolean;\n}\n\ninterface FileSystemGetFileOptions {\n create?: boolean;\n}\n\ninterface FileSystemRemoveOptions {\n recursive?: boolean;\n}\n\ninterface FocusEventInit extends UIEventInit {\n relatedTarget?: EventTarget | null;\n}\n\ninterface FocusOptions {\n preventScroll?: boolean;\n}\n\ninterface FontFaceDescriptors {\n ascentOverride?: string;\n descentOverride?: string;\n display?: FontDisplay;\n featureSettings?: string;\n lineGapOverride?: string;\n stretch?: string;\n style?: string;\n unicodeRange?: string;\n weight?: string;\n}\n\ninterface FontFaceSetLoadEventInit extends EventInit {\n fontfaces?: FontFace[];\n}\n\ninterface FormDataEventInit extends EventInit {\n formData: FormData;\n}\n\ninterface FullscreenOptions {\n navigationUI?: FullscreenNavigationUI;\n}\n\ninterface GainOptions extends AudioNodeOptions {\n gain?: number;\n}\n\ninterface GamepadEffectParameters {\n duration?: number;\n startDelay?: number;\n strongMagnitude?: number;\n weakMagnitude?: number;\n}\n\ninterface GamepadEventInit extends EventInit {\n gamepad: Gamepad;\n}\n\ninterface GetAnimationsOptions {\n subtree?: boolean;\n}\n\ninterface GetNotificationOptions {\n tag?: string;\n}\n\ninterface GetRootNodeOptions {\n composed?: boolean;\n}\n\ninterface HashChangeEventInit extends EventInit {\n newURL?: string;\n oldURL?: string;\n}\n\ninterface HkdfParams extends Algorithm {\n hash: HashAlgorithmIdentifier;\n info: BufferSource;\n salt: BufferSource;\n}\n\ninterface HmacImportParams extends Algorithm {\n hash: HashAlgorithmIdentifier;\n length?: number;\n}\n\ninterface HmacKeyAlgorithm extends KeyAlgorithm {\n hash: KeyAlgorithm;\n length: number;\n}\n\ninterface HmacKeyGenParams extends Algorithm {\n hash: HashAlgorithmIdentifier;\n length?: number;\n}\n\ninterface IDBDatabaseInfo {\n name?: string;\n version?: number;\n}\n\ninterface IDBIndexParameters {\n multiEntry?: boolean;\n unique?: boolean;\n}\n\ninterface IDBObjectStoreParameters {\n autoIncrement?: boolean;\n keyPath?: string | string[] | null;\n}\n\ninterface IDBTransactionOptions {\n durability?: IDBTransactionDurability;\n}\n\ninterface IDBVersionChangeEventInit extends EventInit {\n newVersion?: number | null;\n oldVersion?: number;\n}\n\ninterface IIRFilterOptions extends AudioNodeOptions {\n feedback: number[];\n feedforward: number[];\n}\n\ninterface IdleRequestOptions {\n timeout?: number;\n}\n\ninterface ImageBitmapOptions {\n colorSpaceConversion?: ColorSpaceConversion;\n imageOrientation?: ImageOrientation;\n premultiplyAlpha?: PremultiplyAlpha;\n resizeHeight?: number;\n resizeQuality?: ResizeQuality;\n resizeWidth?: number;\n}\n\ninterface ImageBitmapRenderingContextSettings {\n alpha?: boolean;\n}\n\ninterface ImageDataSettings {\n colorSpace?: PredefinedColorSpace;\n}\n\ninterface ImageEncodeOptions {\n quality?: number;\n type?: string;\n}\n\ninterface ImportMeta {\n url: string;\n}\n\ninterface InputEventInit extends UIEventInit {\n data?: string | null;\n dataTransfer?: DataTransfer | null;\n inputType?: string;\n isComposing?: boolean;\n targetRanges?: StaticRange[];\n}\n\ninterface IntersectionObserverEntryInit {\n boundingClientRect: DOMRectInit;\n intersectionRatio: number;\n intersectionRect: DOMRectInit;\n isIntersecting: boolean;\n rootBounds: DOMRectInit | null;\n target: Element;\n time: DOMHighResTimeStamp;\n}\n\ninterface IntersectionObserverInit {\n root?: Element | Document | null;\n rootMargin?: string;\n threshold?: number | number[];\n}\n\ninterface JsonWebKey {\n alg?: string;\n crv?: string;\n d?: string;\n dp?: string;\n dq?: string;\n e?: string;\n ext?: boolean;\n k?: string;\n key_ops?: string[];\n kty?: string;\n n?: string;\n oth?: RsaOtherPrimesInfo[];\n p?: string;\n q?: string;\n qi?: string;\n use?: string;\n x?: string;\n y?: string;\n}\n\ninterface KeyAlgorithm {\n name: string;\n}\n\ninterface KeyboardEventInit extends EventModifierInit {\n /** @deprecated */\n charCode?: number;\n code?: string;\n isComposing?: boolean;\n key?: string;\n /** @deprecated */\n keyCode?: number;\n location?: number;\n repeat?: boolean;\n}\n\ninterface Keyframe {\n composite?: CompositeOperationOrAuto;\n easing?: string;\n offset?: number | null;\n [property: string]: string | number | null | undefined;\n}\n\ninterface KeyframeAnimationOptions extends KeyframeEffectOptions {\n id?: string;\n timeline?: AnimationTimeline | null;\n}\n\ninterface KeyframeEffectOptions extends EffectTiming {\n composite?: CompositeOperation;\n iterationComposite?: IterationCompositeOperation;\n pseudoElement?: string | null;\n}\n\ninterface LockInfo {\n clientId?: string;\n mode?: LockMode;\n name?: string;\n}\n\ninterface LockManagerSnapshot {\n held?: LockInfo[];\n pending?: LockInfo[];\n}\n\ninterface LockOptions {\n ifAvailable?: boolean;\n mode?: LockMode;\n signal?: AbortSignal;\n steal?: boolean;\n}\n\ninterface MIDIConnectionEventInit extends EventInit {\n port?: MIDIPort;\n}\n\ninterface MIDIMessageEventInit extends EventInit {\n data?: Uint8Array;\n}\n\ninterface MIDIOptions {\n software?: boolean;\n sysex?: boolean;\n}\n\ninterface MediaCapabilitiesDecodingInfo extends MediaCapabilitiesInfo {\n configuration?: MediaDecodingConfiguration;\n}\n\ninterface MediaCapabilitiesEncodingInfo extends MediaCapabilitiesInfo {\n configuration?: MediaEncodingConfiguration;\n}\n\ninterface MediaCapabilitiesInfo {\n powerEfficient: boolean;\n smooth: boolean;\n supported: boolean;\n}\n\ninterface MediaConfiguration {\n audio?: AudioConfiguration;\n video?: VideoConfiguration;\n}\n\ninterface MediaDecodingConfiguration extends MediaConfiguration {\n type: MediaDecodingType;\n}\n\ninterface MediaElementAudioSourceOptions {\n mediaElement: HTMLMediaElement;\n}\n\ninterface MediaEncodingConfiguration extends MediaConfiguration {\n type: MediaEncodingType;\n}\n\ninterface MediaEncryptedEventInit extends EventInit {\n initData?: ArrayBuffer | null;\n initDataType?: string;\n}\n\ninterface MediaImage {\n sizes?: string;\n src: string;\n type?: string;\n}\n\ninterface MediaKeyMessageEventInit extends EventInit {\n message: ArrayBuffer;\n messageType: MediaKeyMessageType;\n}\n\ninterface MediaKeySystemConfiguration {\n audioCapabilities?: MediaKeySystemMediaCapability[];\n distinctiveIdentifier?: MediaKeysRequirement;\n initDataTypes?: string[];\n label?: string;\n persistentState?: MediaKeysRequirement;\n sessionTypes?: string[];\n videoCapabilities?: MediaKeySystemMediaCapability[];\n}\n\ninterface MediaKeySystemMediaCapability {\n contentType?: string;\n encryptionScheme?: string | null;\n robustness?: string;\n}\n\ninterface MediaMetadataInit {\n album?: string;\n artist?: string;\n artwork?: MediaImage[];\n title?: string;\n}\n\ninterface MediaPositionState {\n duration?: number;\n playbackRate?: number;\n position?: number;\n}\n\ninterface MediaQueryListEventInit extends EventInit {\n matches?: boolean;\n media?: string;\n}\n\ninterface MediaRecorderOptions {\n audioBitsPerSecond?: number;\n bitsPerSecond?: number;\n mimeType?: string;\n videoBitsPerSecond?: number;\n}\n\ninterface MediaSessionActionDetails {\n action: MediaSessionAction;\n fastSeek?: boolean;\n seekOffset?: number;\n seekTime?: number;\n}\n\ninterface MediaStreamAudioSourceOptions {\n mediaStream: MediaStream;\n}\n\ninterface MediaStreamConstraints {\n audio?: boolean | MediaTrackConstraints;\n peerIdentity?: string;\n preferCurrentTab?: boolean;\n video?: boolean | MediaTrackConstraints;\n}\n\ninterface MediaStreamTrackEventInit extends EventInit {\n track: MediaStreamTrack;\n}\n\ninterface MediaTrackCapabilities {\n aspectRatio?: DoubleRange;\n autoGainControl?: boolean[];\n channelCount?: ULongRange;\n deviceId?: string;\n displaySurface?: string;\n echoCancellation?: boolean[];\n facingMode?: string[];\n frameRate?: DoubleRange;\n groupId?: string;\n height?: ULongRange;\n noiseSuppression?: boolean[];\n sampleRate?: ULongRange;\n sampleSize?: ULongRange;\n width?: ULongRange;\n}\n\ninterface MediaTrackConstraintSet {\n aspectRatio?: ConstrainDouble;\n autoGainControl?: ConstrainBoolean;\n channelCount?: ConstrainULong;\n deviceId?: ConstrainDOMString;\n displaySurface?: ConstrainDOMString;\n echoCancellation?: ConstrainBoolean;\n facingMode?: ConstrainDOMString;\n frameRate?: ConstrainDouble;\n groupId?: ConstrainDOMString;\n height?: ConstrainULong;\n noiseSuppression?: ConstrainBoolean;\n sampleRate?: ConstrainULong;\n sampleSize?: ConstrainULong;\n width?: ConstrainULong;\n}\n\ninterface MediaTrackConstraints extends MediaTrackConstraintSet {\n advanced?: MediaTrackConstraintSet[];\n}\n\ninterface MediaTrackSettings {\n aspectRatio?: number;\n autoGainControl?: boolean;\n channelCount?: number;\n deviceId?: string;\n displaySurface?: string;\n echoCancellation?: boolean;\n facingMode?: string;\n frameRate?: number;\n groupId?: string;\n height?: number;\n noiseSuppression?: boolean;\n sampleRate?: number;\n sampleSize?: number;\n width?: number;\n}\n\ninterface MediaTrackSupportedConstraints {\n aspectRatio?: boolean;\n autoGainControl?: boolean;\n channelCount?: boolean;\n deviceId?: boolean;\n displaySurface?: boolean;\n echoCancellation?: boolean;\n facingMode?: boolean;\n frameRate?: boolean;\n groupId?: boolean;\n height?: boolean;\n noiseSuppression?: boolean;\n sampleRate?: boolean;\n sampleSize?: boolean;\n width?: boolean;\n}\n\ninterface MessageEventInit extends EventInit {\n data?: T;\n lastEventId?: string;\n origin?: string;\n ports?: MessagePort[];\n source?: MessageEventSource | null;\n}\n\ninterface MouseEventInit extends EventModifierInit {\n button?: number;\n buttons?: number;\n clientX?: number;\n clientY?: number;\n movementX?: number;\n movementY?: number;\n relatedTarget?: EventTarget | null;\n screenX?: number;\n screenY?: number;\n}\n\ninterface MultiCacheQueryOptions extends CacheQueryOptions {\n cacheName?: string;\n}\n\ninterface MutationObserverInit {\n /** Set to a list of attribute local names (without namespace) if not all attribute mutations need to be observed and attributes is true or omitted. */\n attributeFilter?: string[];\n /** Set to true if attributes is true or omitted and target's attribute value before the mutation needs to be recorded. */\n attributeOldValue?: boolean;\n /** Set to true if mutations to target's attributes are to be observed. Can be omitted if attributeOldValue or attributeFilter is specified. */\n attributes?: boolean;\n /** Set to true if mutations to target's data are to be observed. Can be omitted if characterDataOldValue is specified. */\n characterData?: boolean;\n /** Set to true if characterData is set to true or omitted and target's data before the mutation needs to be recorded. */\n characterDataOldValue?: boolean;\n /** Set to true if mutations to target's children are to be observed. */\n childList?: boolean;\n /** Set to true if mutations to not just target, but also target's descendants are to be observed. */\n subtree?: boolean;\n}\n\ninterface NavigationPreloadState {\n enabled?: boolean;\n headerValue?: string;\n}\n\ninterface NotificationOptions {\n badge?: string;\n body?: string;\n data?: any;\n dir?: NotificationDirection;\n icon?: string;\n lang?: string;\n requireInteraction?: boolean;\n silent?: boolean | null;\n tag?: string;\n}\n\ninterface OfflineAudioCompletionEventInit extends EventInit {\n renderedBuffer: AudioBuffer;\n}\n\ninterface OfflineAudioContextOptions {\n length: number;\n numberOfChannels?: number;\n sampleRate: number;\n}\n\ninterface OptionalEffectTiming {\n delay?: number;\n direction?: PlaybackDirection;\n duration?: number | string;\n easing?: string;\n endDelay?: number;\n fill?: FillMode;\n iterationStart?: number;\n iterations?: number;\n playbackRate?: number;\n}\n\ninterface OscillatorOptions extends AudioNodeOptions {\n detune?: number;\n frequency?: number;\n periodicWave?: PeriodicWave;\n type?: OscillatorType;\n}\n\ninterface PageTransitionEventInit extends EventInit {\n persisted?: boolean;\n}\n\ninterface PannerOptions extends AudioNodeOptions {\n coneInnerAngle?: number;\n coneOuterAngle?: number;\n coneOuterGain?: number;\n distanceModel?: DistanceModelType;\n maxDistance?: number;\n orientationX?: number;\n orientationY?: number;\n orientationZ?: number;\n panningModel?: PanningModelType;\n positionX?: number;\n positionY?: number;\n positionZ?: number;\n refDistance?: number;\n rolloffFactor?: number;\n}\n\ninterface PaymentCurrencyAmount {\n currency: string;\n value: string;\n}\n\ninterface PaymentDetailsBase {\n displayItems?: PaymentItem[];\n modifiers?: PaymentDetailsModifier[];\n}\n\ninterface PaymentDetailsInit extends PaymentDetailsBase {\n id?: string;\n total: PaymentItem;\n}\n\ninterface PaymentDetailsModifier {\n additionalDisplayItems?: PaymentItem[];\n data?: any;\n supportedMethods: string;\n total?: PaymentItem;\n}\n\ninterface PaymentDetailsUpdate extends PaymentDetailsBase {\n paymentMethodErrors?: any;\n total?: PaymentItem;\n}\n\ninterface PaymentItem {\n amount: PaymentCurrencyAmount;\n label: string;\n pending?: boolean;\n}\n\ninterface PaymentMethodChangeEventInit extends PaymentRequestUpdateEventInit {\n methodDetails?: any;\n methodName?: string;\n}\n\ninterface PaymentMethodData {\n data?: any;\n supportedMethods: string;\n}\n\ninterface PaymentRequestUpdateEventInit extends EventInit {\n}\n\ninterface PaymentValidationErrors {\n error?: string;\n paymentMethod?: any;\n}\n\ninterface Pbkdf2Params extends Algorithm {\n hash: HashAlgorithmIdentifier;\n iterations: number;\n salt: BufferSource;\n}\n\ninterface PerformanceMarkOptions {\n detail?: any;\n startTime?: DOMHighResTimeStamp;\n}\n\ninterface PerformanceMeasureOptions {\n detail?: any;\n duration?: DOMHighResTimeStamp;\n end?: string | DOMHighResTimeStamp;\n start?: string | DOMHighResTimeStamp;\n}\n\ninterface PerformanceObserverInit {\n buffered?: boolean;\n entryTypes?: string[];\n type?: string;\n}\n\ninterface PeriodicWaveConstraints {\n disableNormalization?: boolean;\n}\n\ninterface PeriodicWaveOptions extends PeriodicWaveConstraints {\n imag?: number[] | Float32Array;\n real?: number[] | Float32Array;\n}\n\ninterface PermissionDescriptor {\n name: PermissionName;\n}\n\ninterface PictureInPictureEventInit extends EventInit {\n pictureInPictureWindow: PictureInPictureWindow;\n}\n\ninterface PlaneLayout {\n offset: number;\n stride: number;\n}\n\ninterface PointerEventInit extends MouseEventInit {\n coalescedEvents?: PointerEvent[];\n height?: number;\n isPrimary?: boolean;\n pointerId?: number;\n pointerType?: string;\n predictedEvents?: PointerEvent[];\n pressure?: number;\n tangentialPressure?: number;\n tiltX?: number;\n tiltY?: number;\n twist?: number;\n width?: number;\n}\n\ninterface PopStateEventInit extends EventInit {\n state?: any;\n}\n\ninterface PositionOptions {\n enableHighAccuracy?: boolean;\n maximumAge?: number;\n timeout?: number;\n}\n\ninterface ProgressEventInit extends EventInit {\n lengthComputable?: boolean;\n loaded?: number;\n total?: number;\n}\n\ninterface PromiseRejectionEventInit extends EventInit {\n promise: Promise;\n reason?: any;\n}\n\ninterface PropertyDefinition {\n inherits: boolean;\n initialValue?: string;\n name: string;\n syntax?: string;\n}\n\ninterface PropertyIndexedKeyframes {\n composite?: CompositeOperationOrAuto | CompositeOperationOrAuto[];\n easing?: string | string[];\n offset?: number | (number | null)[];\n [property: string]: string | string[] | number | null | (number | null)[] | undefined;\n}\n\ninterface PublicKeyCredentialCreationOptions {\n attestation?: AttestationConveyancePreference;\n authenticatorSelection?: AuthenticatorSelectionCriteria;\n challenge: BufferSource;\n excludeCredentials?: PublicKeyCredentialDescriptor[];\n extensions?: AuthenticationExtensionsClientInputs;\n pubKeyCredParams: PublicKeyCredentialParameters[];\n rp: PublicKeyCredentialRpEntity;\n timeout?: number;\n user: PublicKeyCredentialUserEntity;\n}\n\ninterface PublicKeyCredentialDescriptor {\n id: BufferSource;\n transports?: AuthenticatorTransport[];\n type: PublicKeyCredentialType;\n}\n\ninterface PublicKeyCredentialEntity {\n name: string;\n}\n\ninterface PublicKeyCredentialParameters {\n alg: COSEAlgorithmIdentifier;\n type: PublicKeyCredentialType;\n}\n\ninterface PublicKeyCredentialRequestOptions {\n allowCredentials?: PublicKeyCredentialDescriptor[];\n challenge: BufferSource;\n extensions?: AuthenticationExtensionsClientInputs;\n rpId?: string;\n timeout?: number;\n userVerification?: UserVerificationRequirement;\n}\n\ninterface PublicKeyCredentialRpEntity extends PublicKeyCredentialEntity {\n id?: string;\n}\n\ninterface PublicKeyCredentialUserEntity extends PublicKeyCredentialEntity {\n displayName: string;\n id: BufferSource;\n}\n\ninterface PushSubscriptionJSON {\n endpoint?: string;\n expirationTime?: EpochTimeStamp | null;\n keys?: Record;\n}\n\ninterface PushSubscriptionOptionsInit {\n applicationServerKey?: BufferSource | string | null;\n userVisibleOnly?: boolean;\n}\n\ninterface QueuingStrategy {\n highWaterMark?: number;\n size?: QueuingStrategySize;\n}\n\ninterface QueuingStrategyInit {\n /**\n * Creates a new ByteLengthQueuingStrategy with the provided high water mark.\n *\n * Note that the provided high water mark will not be validated ahead of time. Instead, if it is negative, NaN, or not a number, the resulting ByteLengthQueuingStrategy will cause the corresponding stream constructor to throw.\n */\n highWaterMark: number;\n}\n\ninterface RTCAnswerOptions extends RTCOfferAnswerOptions {\n}\n\ninterface RTCCertificateExpiration {\n expires?: number;\n}\n\ninterface RTCConfiguration {\n bundlePolicy?: RTCBundlePolicy;\n certificates?: RTCCertificate[];\n iceCandidatePoolSize?: number;\n iceServers?: RTCIceServer[];\n iceTransportPolicy?: RTCIceTransportPolicy;\n rtcpMuxPolicy?: RTCRtcpMuxPolicy;\n}\n\ninterface RTCDTMFToneChangeEventInit extends EventInit {\n tone?: string;\n}\n\ninterface RTCDataChannelEventInit extends EventInit {\n channel: RTCDataChannel;\n}\n\ninterface RTCDataChannelInit {\n id?: number;\n maxPacketLifeTime?: number;\n maxRetransmits?: number;\n negotiated?: boolean;\n ordered?: boolean;\n protocol?: string;\n}\n\ninterface RTCDtlsFingerprint {\n algorithm?: string;\n value?: string;\n}\n\ninterface RTCEncodedAudioFrameMetadata {\n contributingSources?: number[];\n payloadType?: number;\n sequenceNumber?: number;\n synchronizationSource?: number;\n}\n\ninterface RTCEncodedVideoFrameMetadata {\n contributingSources?: number[];\n dependencies?: number[];\n frameId?: number;\n height?: number;\n payloadType?: number;\n spatialIndex?: number;\n synchronizationSource?: number;\n temporalIndex?: number;\n timestamp?: number;\n width?: number;\n}\n\ninterface RTCErrorEventInit extends EventInit {\n error: RTCError;\n}\n\ninterface RTCErrorInit {\n errorDetail: RTCErrorDetailType;\n httpRequestStatusCode?: number;\n receivedAlert?: number;\n sctpCauseCode?: number;\n sdpLineNumber?: number;\n sentAlert?: number;\n}\n\ninterface RTCIceCandidateInit {\n candidate?: string;\n sdpMLineIndex?: number | null;\n sdpMid?: string | null;\n usernameFragment?: string | null;\n}\n\ninterface RTCIceCandidatePair {\n local?: RTCIceCandidate;\n remote?: RTCIceCandidate;\n}\n\ninterface RTCIceCandidatePairStats extends RTCStats {\n availableIncomingBitrate?: number;\n availableOutgoingBitrate?: number;\n bytesReceived?: number;\n bytesSent?: number;\n currentRoundTripTime?: number;\n lastPacketReceivedTimestamp?: DOMHighResTimeStamp;\n lastPacketSentTimestamp?: DOMHighResTimeStamp;\n localCandidateId: string;\n nominated?: boolean;\n remoteCandidateId: string;\n requestsReceived?: number;\n requestsSent?: number;\n responsesReceived?: number;\n responsesSent?: number;\n state: RTCStatsIceCandidatePairState;\n totalRoundTripTime?: number;\n transportId: string;\n}\n\ninterface RTCIceServer {\n credential?: string;\n urls: string | string[];\n username?: string;\n}\n\ninterface RTCInboundRtpStreamStats extends RTCReceivedRtpStreamStats {\n audioLevel?: number;\n bytesReceived?: number;\n concealedSamples?: number;\n concealmentEvents?: number;\n decoderImplementation?: string;\n estimatedPlayoutTimestamp?: DOMHighResTimeStamp;\n fecPacketsDiscarded?: number;\n fecPacketsReceived?: number;\n firCount?: number;\n frameHeight?: number;\n frameWidth?: number;\n framesDecoded?: number;\n framesDropped?: number;\n framesPerSecond?: number;\n framesReceived?: number;\n headerBytesReceived?: number;\n insertedSamplesForDeceleration?: number;\n jitterBufferDelay?: number;\n jitterBufferEmittedCount?: number;\n keyFramesDecoded?: number;\n lastPacketReceivedTimestamp?: DOMHighResTimeStamp;\n mid?: string;\n nackCount?: number;\n packetsDiscarded?: number;\n pliCount?: number;\n qpSum?: number;\n remoteId?: string;\n removedSamplesForAcceleration?: number;\n silentConcealedSamples?: number;\n totalAudioEnergy?: number;\n totalDecodeTime?: number;\n totalInterFrameDelay?: number;\n totalProcessingDelay?: number;\n totalSamplesDuration?: number;\n totalSamplesReceived?: number;\n totalSquaredInterFrameDelay?: number;\n trackIdentifier: string;\n}\n\ninterface RTCLocalSessionDescriptionInit {\n sdp?: string;\n type?: RTCSdpType;\n}\n\ninterface RTCOfferAnswerOptions {\n}\n\ninterface RTCOfferOptions extends RTCOfferAnswerOptions {\n iceRestart?: boolean;\n offerToReceiveAudio?: boolean;\n offerToReceiveVideo?: boolean;\n}\n\ninterface RTCOutboundRtpStreamStats extends RTCSentRtpStreamStats {\n firCount?: number;\n frameHeight?: number;\n frameWidth?: number;\n framesEncoded?: number;\n framesPerSecond?: number;\n framesSent?: number;\n headerBytesSent?: number;\n hugeFramesSent?: number;\n keyFramesEncoded?: number;\n mediaSourceId?: string;\n nackCount?: number;\n pliCount?: number;\n qpSum?: number;\n qualityLimitationResolutionChanges?: number;\n remoteId?: string;\n retransmittedBytesSent?: number;\n retransmittedPacketsSent?: number;\n rid?: string;\n rtxSsrc?: number;\n targetBitrate?: number;\n totalEncodeTime?: number;\n totalEncodedBytesTarget?: number;\n totalPacketSendDelay?: number;\n}\n\ninterface RTCPeerConnectionIceErrorEventInit extends EventInit {\n address?: string | null;\n errorCode: number;\n errorText?: string;\n port?: number | null;\n url?: string;\n}\n\ninterface RTCPeerConnectionIceEventInit extends EventInit {\n candidate?: RTCIceCandidate | null;\n url?: string | null;\n}\n\ninterface RTCReceivedRtpStreamStats extends RTCRtpStreamStats {\n jitter?: number;\n packetsLost?: number;\n packetsReceived?: number;\n}\n\ninterface RTCRtcpParameters {\n cname?: string;\n reducedSize?: boolean;\n}\n\ninterface RTCRtpCapabilities {\n codecs: RTCRtpCodecCapability[];\n headerExtensions: RTCRtpHeaderExtensionCapability[];\n}\n\ninterface RTCRtpCodec {\n channels?: number;\n clockRate: number;\n mimeType: string;\n sdpFmtpLine?: string;\n}\n\ninterface RTCRtpCodecCapability extends RTCRtpCodec {\n}\n\ninterface RTCRtpCodecParameters extends RTCRtpCodec {\n payloadType: number;\n}\n\ninterface RTCRtpCodingParameters {\n rid?: string;\n}\n\ninterface RTCRtpContributingSource {\n audioLevel?: number;\n rtpTimestamp: number;\n source: number;\n timestamp: DOMHighResTimeStamp;\n}\n\ninterface RTCRtpEncodingParameters extends RTCRtpCodingParameters {\n active?: boolean;\n maxBitrate?: number;\n maxFramerate?: number;\n networkPriority?: RTCPriorityType;\n priority?: RTCPriorityType;\n scaleResolutionDownBy?: number;\n}\n\ninterface RTCRtpHeaderExtensionCapability {\n uri: string;\n}\n\ninterface RTCRtpHeaderExtensionParameters {\n encrypted?: boolean;\n id: number;\n uri: string;\n}\n\ninterface RTCRtpParameters {\n codecs: RTCRtpCodecParameters[];\n headerExtensions: RTCRtpHeaderExtensionParameters[];\n rtcp: RTCRtcpParameters;\n}\n\ninterface RTCRtpReceiveParameters extends RTCRtpParameters {\n}\n\ninterface RTCRtpSendParameters extends RTCRtpParameters {\n degradationPreference?: RTCDegradationPreference;\n encodings: RTCRtpEncodingParameters[];\n transactionId: string;\n}\n\ninterface RTCRtpStreamStats extends RTCStats {\n codecId?: string;\n kind: string;\n ssrc: number;\n transportId?: string;\n}\n\ninterface RTCRtpSynchronizationSource extends RTCRtpContributingSource {\n}\n\ninterface RTCRtpTransceiverInit {\n direction?: RTCRtpTransceiverDirection;\n sendEncodings?: RTCRtpEncodingParameters[];\n streams?: MediaStream[];\n}\n\ninterface RTCSentRtpStreamStats extends RTCRtpStreamStats {\n bytesSent?: number;\n packetsSent?: number;\n}\n\ninterface RTCSessionDescriptionInit {\n sdp?: string;\n type: RTCSdpType;\n}\n\ninterface RTCSetParameterOptions {\n}\n\ninterface RTCStats {\n id: string;\n timestamp: DOMHighResTimeStamp;\n type: RTCStatsType;\n}\n\ninterface RTCTrackEventInit extends EventInit {\n receiver: RTCRtpReceiver;\n streams?: MediaStream[];\n track: MediaStreamTrack;\n transceiver: RTCRtpTransceiver;\n}\n\ninterface RTCTransportStats extends RTCStats {\n bytesReceived?: number;\n bytesSent?: number;\n dtlsCipher?: string;\n dtlsState: RTCDtlsTransportState;\n localCertificateId?: string;\n remoteCertificateId?: string;\n selectedCandidatePairId?: string;\n srtpCipher?: string;\n tlsVersion?: string;\n}\n\ninterface ReadableStreamGetReaderOptions {\n /**\n * Creates a ReadableStreamBYOBReader and locks the stream to the new reader.\n *\n * This call behaves the same way as the no-argument variant, except that it only works on readable byte streams, i.e. streams which were constructed specifically with the ability to handle \"bring your own buffer\" reading. The returned BYOB reader provides the ability to directly read individual chunks from the stream via its read() method, into developer-supplied buffers, allowing more precise control over allocation.\n */\n mode?: ReadableStreamReaderMode;\n}\n\ninterface ReadableStreamReadDoneResult {\n done: true;\n value?: T;\n}\n\ninterface ReadableStreamReadValueResult {\n done: false;\n value: T;\n}\n\ninterface ReadableWritablePair {\n readable: ReadableStream;\n /**\n * Provides a convenient, chainable way of piping this readable stream through a transform stream (or any other { writable, readable } pair). It simply pipes the stream into the writable side of the supplied pair, and returns the readable side for further use.\n *\n * Piping a stream will lock it for the duration of the pipe, preventing any other consumer from acquiring a reader.\n */\n writable: WritableStream;\n}\n\ninterface RegistrationOptions {\n scope?: string;\n type?: WorkerType;\n updateViaCache?: ServiceWorkerUpdateViaCache;\n}\n\ninterface ReportingObserverOptions {\n buffered?: boolean;\n types?: string[];\n}\n\ninterface RequestInit {\n /** A BodyInit object or null to set request's body. */\n body?: BodyInit | null;\n /** A string indicating how the request will interact with the browser's cache to set request's cache. */\n cache?: RequestCache;\n /** A string indicating whether credentials will be sent with the request always, never, or only when sent to a same-origin URL. Sets request's credentials. */\n credentials?: RequestCredentials;\n /** A Headers object, an object literal, or an array of two-item arrays to set request's headers. */\n headers?: HeadersInit;\n /** A cryptographic hash of the resource to be fetched by request. Sets request's integrity. */\n integrity?: string;\n /** A boolean to set request's keepalive. */\n keepalive?: boolean;\n /** A string to set request's method. */\n method?: string;\n /** A string to indicate whether the request will use CORS, or will be restricted to same-origin URLs. Sets request's mode. */\n mode?: RequestMode;\n priority?: RequestPriority;\n /** A string indicating whether request follows redirects, results in an error upon encountering a redirect, or returns the redirect (in an opaque fashion). Sets request's redirect. */\n redirect?: RequestRedirect;\n /** A string whose value is a same-origin URL, \"about:client\", or the empty string, to set request's referrer. */\n referrer?: string;\n /** A referrer policy to set request's referrerPolicy. */\n referrerPolicy?: ReferrerPolicy;\n /** An AbortSignal to set request's signal. */\n signal?: AbortSignal | null;\n /** Can only be null. Used to disassociate request from any Window. */\n window?: null;\n}\n\ninterface ResizeObserverOptions {\n box?: ResizeObserverBoxOptions;\n}\n\ninterface ResponseInit {\n headers?: HeadersInit;\n status?: number;\n statusText?: string;\n}\n\ninterface RsaHashedImportParams extends Algorithm {\n hash: HashAlgorithmIdentifier;\n}\n\ninterface RsaHashedKeyAlgorithm extends RsaKeyAlgorithm {\n hash: KeyAlgorithm;\n}\n\ninterface RsaHashedKeyGenParams extends RsaKeyGenParams {\n hash: HashAlgorithmIdentifier;\n}\n\ninterface RsaKeyAlgorithm extends KeyAlgorithm {\n modulusLength: number;\n publicExponent: BigInteger;\n}\n\ninterface RsaKeyGenParams extends Algorithm {\n modulusLength: number;\n publicExponent: BigInteger;\n}\n\ninterface RsaOaepParams extends Algorithm {\n label?: BufferSource;\n}\n\ninterface RsaOtherPrimesInfo {\n d?: string;\n r?: string;\n t?: string;\n}\n\ninterface RsaPssParams extends Algorithm {\n saltLength: number;\n}\n\ninterface SVGBoundingBoxOptions {\n clipped?: boolean;\n fill?: boolean;\n markers?: boolean;\n stroke?: boolean;\n}\n\ninterface ScrollIntoViewOptions extends ScrollOptions {\n block?: ScrollLogicalPosition;\n inline?: ScrollLogicalPosition;\n}\n\ninterface ScrollOptions {\n behavior?: ScrollBehavior;\n}\n\ninterface ScrollToOptions extends ScrollOptions {\n left?: number;\n top?: number;\n}\n\ninterface SecurityPolicyViolationEventInit extends EventInit {\n blockedURI?: string;\n columnNumber?: number;\n disposition: SecurityPolicyViolationEventDisposition;\n documentURI: string;\n effectiveDirective: string;\n lineNumber?: number;\n originalPolicy: string;\n referrer?: string;\n sample?: string;\n sourceFile?: string;\n statusCode: number;\n violatedDirective: string;\n}\n\ninterface ShadowRootInit {\n delegatesFocus?: boolean;\n mode: ShadowRootMode;\n slotAssignment?: SlotAssignmentMode;\n}\n\ninterface ShareData {\n files?: File[];\n text?: string;\n title?: string;\n url?: string;\n}\n\ninterface SpeechSynthesisErrorEventInit extends SpeechSynthesisEventInit {\n error: SpeechSynthesisErrorCode;\n}\n\ninterface SpeechSynthesisEventInit extends EventInit {\n charIndex?: number;\n charLength?: number;\n elapsedTime?: number;\n name?: string;\n utterance: SpeechSynthesisUtterance;\n}\n\ninterface StaticRangeInit {\n endContainer: Node;\n endOffset: number;\n startContainer: Node;\n startOffset: number;\n}\n\ninterface StereoPannerOptions extends AudioNodeOptions {\n pan?: number;\n}\n\ninterface StorageEstimate {\n quota?: number;\n usage?: number;\n}\n\ninterface StorageEventInit extends EventInit {\n key?: string | null;\n newValue?: string | null;\n oldValue?: string | null;\n storageArea?: Storage | null;\n url?: string;\n}\n\ninterface StreamPipeOptions {\n preventAbort?: boolean;\n preventCancel?: boolean;\n /**\n * Pipes this readable stream to a given writable stream destination. The way in which the piping process behaves under various error conditions can be customized with a number of passed options. It returns a promise that fulfills when the piping process completes successfully, or rejects if any errors were encountered.\n *\n * Piping a stream will lock it for the duration of the pipe, preventing any other consumer from acquiring a reader.\n *\n * Errors and closures of the source and destination streams propagate as follows:\n *\n * An error in this source readable stream will abort destination, unless preventAbort is truthy. The returned promise will be rejected with the source's error, or with any error that occurs during aborting the destination.\n *\n * An error in destination will cancel this source readable stream, unless preventCancel is truthy. The returned promise will be rejected with the destination's error, or with any error that occurs during canceling the source.\n *\n * When this source readable stream closes, destination will be closed, unless preventClose is truthy. The returned promise will be fulfilled once this process completes, unless an error is encountered while closing the destination, in which case it will be rejected with that error.\n *\n * If destination starts out closed or closing, this source readable stream will be canceled, unless preventCancel is true. The returned promise will be rejected with an error indicating piping to a closed stream failed, or with any error that occurs during canceling the source.\n *\n * The signal option can be set to an AbortSignal to allow aborting an ongoing pipe operation via the corresponding AbortController. In this case, this source readable stream will be canceled, and destination aborted, unless the respective options preventCancel or preventAbort are set.\n */\n preventClose?: boolean;\n signal?: AbortSignal;\n}\n\ninterface StructuredSerializeOptions {\n transfer?: Transferable[];\n}\n\ninterface SubmitEventInit extends EventInit {\n submitter?: HTMLElement | null;\n}\n\ninterface TextDecodeOptions {\n stream?: boolean;\n}\n\ninterface TextDecoderOptions {\n fatal?: boolean;\n ignoreBOM?: boolean;\n}\n\ninterface TextEncoderEncodeIntoResult {\n read: number;\n written: number;\n}\n\ninterface ToggleEventInit extends EventInit {\n newState?: string;\n oldState?: string;\n}\n\ninterface TouchEventInit extends EventModifierInit {\n changedTouches?: Touch[];\n targetTouches?: Touch[];\n touches?: Touch[];\n}\n\ninterface TouchInit {\n altitudeAngle?: number;\n azimuthAngle?: number;\n clientX?: number;\n clientY?: number;\n force?: number;\n identifier: number;\n pageX?: number;\n pageY?: number;\n radiusX?: number;\n radiusY?: number;\n rotationAngle?: number;\n screenX?: number;\n screenY?: number;\n target: EventTarget;\n touchType?: TouchType;\n}\n\ninterface TrackEventInit extends EventInit {\n track?: TextTrack | null;\n}\n\ninterface Transformer {\n flush?: TransformerFlushCallback;\n readableType?: undefined;\n start?: TransformerStartCallback;\n transform?: TransformerTransformCallback;\n writableType?: undefined;\n}\n\ninterface TransitionEventInit extends EventInit {\n elapsedTime?: number;\n propertyName?: string;\n pseudoElement?: string;\n}\n\ninterface UIEventInit extends EventInit {\n detail?: number;\n view?: Window | null;\n /** @deprecated */\n which?: number;\n}\n\ninterface ULongRange {\n max?: number;\n min?: number;\n}\n\ninterface UnderlyingByteSource {\n autoAllocateChunkSize?: number;\n cancel?: UnderlyingSourceCancelCallback;\n pull?: (controller: ReadableByteStreamController) => void | PromiseLike;\n start?: (controller: ReadableByteStreamController) => any;\n type: \"bytes\";\n}\n\ninterface UnderlyingDefaultSource {\n cancel?: UnderlyingSourceCancelCallback;\n pull?: (controller: ReadableStreamDefaultController) => void | PromiseLike;\n start?: (controller: ReadableStreamDefaultController) => any;\n type?: undefined;\n}\n\ninterface UnderlyingSink {\n abort?: UnderlyingSinkAbortCallback;\n close?: UnderlyingSinkCloseCallback;\n start?: UnderlyingSinkStartCallback;\n type?: undefined;\n write?: UnderlyingSinkWriteCallback;\n}\n\ninterface UnderlyingSource {\n autoAllocateChunkSize?: number;\n cancel?: UnderlyingSourceCancelCallback;\n pull?: UnderlyingSourcePullCallback;\n start?: UnderlyingSourceStartCallback;\n type?: ReadableStreamType;\n}\n\ninterface ValidityStateFlags {\n badInput?: boolean;\n customError?: boolean;\n patternMismatch?: boolean;\n rangeOverflow?: boolean;\n rangeUnderflow?: boolean;\n stepMismatch?: boolean;\n tooLong?: boolean;\n tooShort?: boolean;\n typeMismatch?: boolean;\n valueMissing?: boolean;\n}\n\ninterface VideoColorSpaceInit {\n fullRange?: boolean | null;\n matrix?: VideoMatrixCoefficients | null;\n primaries?: VideoColorPrimaries | null;\n transfer?: VideoTransferCharacteristics | null;\n}\n\ninterface VideoConfiguration {\n bitrate: number;\n colorGamut?: ColorGamut;\n contentType: string;\n framerate: number;\n hdrMetadataType?: HdrMetadataType;\n height: number;\n scalabilityMode?: string;\n transferFunction?: TransferFunction;\n width: number;\n}\n\ninterface VideoDecoderConfig {\n codec: string;\n codedHeight?: number;\n codedWidth?: number;\n colorSpace?: VideoColorSpaceInit;\n description?: AllowSharedBufferSource;\n displayAspectHeight?: number;\n displayAspectWidth?: number;\n hardwareAcceleration?: HardwareAcceleration;\n optimizeForLatency?: boolean;\n}\n\ninterface VideoDecoderInit {\n error: WebCodecsErrorCallback;\n output: VideoFrameOutputCallback;\n}\n\ninterface VideoDecoderSupport {\n config?: VideoDecoderConfig;\n supported?: boolean;\n}\n\ninterface VideoEncoderConfig {\n alpha?: AlphaOption;\n avc?: AvcEncoderConfig;\n bitrate?: number;\n bitrateMode?: VideoEncoderBitrateMode;\n codec: string;\n displayHeight?: number;\n displayWidth?: number;\n framerate?: number;\n hardwareAcceleration?: HardwareAcceleration;\n height: number;\n latencyMode?: LatencyMode;\n scalabilityMode?: string;\n width: number;\n}\n\ninterface VideoEncoderEncodeOptions {\n keyFrame?: boolean;\n}\n\ninterface VideoEncoderInit {\n error: WebCodecsErrorCallback;\n output: EncodedVideoChunkOutputCallback;\n}\n\ninterface VideoEncoderSupport {\n config?: VideoEncoderConfig;\n supported?: boolean;\n}\n\ninterface VideoFrameBufferInit {\n codedHeight: number;\n codedWidth: number;\n colorSpace?: VideoColorSpaceInit;\n displayHeight?: number;\n displayWidth?: number;\n duration?: number;\n format: VideoPixelFormat;\n layout?: PlaneLayout[];\n timestamp: number;\n visibleRect?: DOMRectInit;\n}\n\ninterface VideoFrameCallbackMetadata {\n captureTime?: DOMHighResTimeStamp;\n expectedDisplayTime: DOMHighResTimeStamp;\n height: number;\n mediaTime: number;\n presentationTime: DOMHighResTimeStamp;\n presentedFrames: number;\n processingDuration?: number;\n receiveTime?: DOMHighResTimeStamp;\n rtpTimestamp?: number;\n width: number;\n}\n\ninterface VideoFrameCopyToOptions {\n layout?: PlaneLayout[];\n rect?: DOMRectInit;\n}\n\ninterface VideoFrameInit {\n alpha?: AlphaOption;\n displayHeight?: number;\n displayWidth?: number;\n duration?: number;\n timestamp?: number;\n visibleRect?: DOMRectInit;\n}\n\ninterface WaveShaperOptions extends AudioNodeOptions {\n curve?: number[] | Float32Array;\n oversample?: OverSampleType;\n}\n\ninterface WebGLContextAttributes {\n alpha?: boolean;\n antialias?: boolean;\n depth?: boolean;\n desynchronized?: boolean;\n failIfMajorPerformanceCaveat?: boolean;\n powerPreference?: WebGLPowerPreference;\n premultipliedAlpha?: boolean;\n preserveDrawingBuffer?: boolean;\n stencil?: boolean;\n}\n\ninterface WebGLContextEventInit extends EventInit {\n statusMessage?: string;\n}\n\ninterface WebTransportCloseInfo {\n closeCode?: number;\n reason?: string;\n}\n\ninterface WebTransportErrorOptions {\n source?: WebTransportErrorSource;\n streamErrorCode?: number | null;\n}\n\ninterface WebTransportHash {\n algorithm?: string;\n value?: BufferSource;\n}\n\ninterface WebTransportOptions {\n allowPooling?: boolean;\n congestionControl?: WebTransportCongestionControl;\n requireUnreliable?: boolean;\n serverCertificateHashes?: WebTransportHash[];\n}\n\ninterface WebTransportSendStreamOptions {\n sendOrder?: number;\n}\n\ninterface WheelEventInit extends MouseEventInit {\n deltaMode?: number;\n deltaX?: number;\n deltaY?: number;\n deltaZ?: number;\n}\n\ninterface WindowPostMessageOptions extends StructuredSerializeOptions {\n targetOrigin?: string;\n}\n\ninterface WorkerOptions {\n credentials?: RequestCredentials;\n name?: string;\n type?: WorkerType;\n}\n\ninterface WorkletOptions {\n credentials?: RequestCredentials;\n}\n\ninterface WriteParams {\n data?: BufferSource | Blob | string | null;\n position?: number | null;\n size?: number | null;\n type: WriteCommandType;\n}\n\ntype NodeFilter = ((node: Node) => number) | { acceptNode(node: Node): number; };\n\ndeclare var NodeFilter: {\n readonly FILTER_ACCEPT: 1;\n readonly FILTER_REJECT: 2;\n readonly FILTER_SKIP: 3;\n readonly SHOW_ALL: 0xFFFFFFFF;\n readonly SHOW_ELEMENT: 0x1;\n readonly SHOW_ATTRIBUTE: 0x2;\n readonly SHOW_TEXT: 0x4;\n readonly SHOW_CDATA_SECTION: 0x8;\n readonly SHOW_ENTITY_REFERENCE: 0x10;\n readonly SHOW_ENTITY: 0x20;\n readonly SHOW_PROCESSING_INSTRUCTION: 0x40;\n readonly SHOW_COMMENT: 0x80;\n readonly SHOW_DOCUMENT: 0x100;\n readonly SHOW_DOCUMENT_TYPE: 0x200;\n readonly SHOW_DOCUMENT_FRAGMENT: 0x400;\n readonly SHOW_NOTATION: 0x800;\n};\n\ntype XPathNSResolver = ((prefix: string | null) => string | null) | { lookupNamespaceURI(prefix: string | null): string | null; };\n\n/**\n * The ANGLE_instanced_arrays extension is part of the WebGL API and allows to draw the same object, or groups of similar objects multiple times, if they share the same vertex data, primitive count and type.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays)\n */\ninterface ANGLE_instanced_arrays {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays/drawArraysInstancedANGLE) */\n drawArraysInstancedANGLE(mode: GLenum, first: GLint, count: GLsizei, primcount: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays/drawElementsInstancedANGLE) */\n drawElementsInstancedANGLE(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, primcount: GLsizei): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ANGLE_instanced_arrays/vertexAttribDivisorANGLE) */\n vertexAttribDivisorANGLE(index: GLuint, divisor: GLuint): void;\n readonly VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE: 0x88FE;\n}\n\ninterface ARIAMixin {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaAtomic) */\n ariaAtomic: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaAutoComplete) */\n ariaAutoComplete: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaBusy) */\n ariaBusy: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaChecked) */\n ariaChecked: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaColCount) */\n ariaColCount: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaColIndex) */\n ariaColIndex: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaColSpan) */\n ariaColSpan: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaCurrent) */\n ariaCurrent: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaDescription) */\n ariaDescription: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaDisabled) */\n ariaDisabled: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaExpanded) */\n ariaExpanded: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaHasPopup) */\n ariaHasPopup: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaHidden) */\n ariaHidden: string | null;\n ariaInvalid: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaKeyShortcuts) */\n ariaKeyShortcuts: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaLabel) */\n ariaLabel: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaLevel) */\n ariaLevel: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaLive) */\n ariaLive: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaModal) */\n ariaModal: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaMultiLine) */\n ariaMultiLine: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaMultiSelectable) */\n ariaMultiSelectable: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaOrientation) */\n ariaOrientation: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaPlaceholder) */\n ariaPlaceholder: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaPosInSet) */\n ariaPosInSet: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaPressed) */\n ariaPressed: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaReadOnly) */\n ariaReadOnly: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaRequired) */\n ariaRequired: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaRoleDescription) */\n ariaRoleDescription: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaRowCount) */\n ariaRowCount: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaRowIndex) */\n ariaRowIndex: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaRowSpan) */\n ariaRowSpan: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaSelected) */\n ariaSelected: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaSetSize) */\n ariaSetSize: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaSort) */\n ariaSort: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaValueMax) */\n ariaValueMax: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaValueMin) */\n ariaValueMin: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaValueNow) */\n ariaValueNow: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaValueText) */\n ariaValueText: string | null;\n role: string | null;\n}\n\n/**\n * A controller object that allows you to abort one or more DOM requests as and when desired.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortController)\n */\ninterface AbortController {\n /**\n * Returns the AbortSignal object associated with this object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortController/signal)\n */\n readonly signal: AbortSignal;\n /**\n * Invoking this method will set this object's AbortSignal's aborted flag and signal to any observers that the associated activity is to be aborted.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortController/abort)\n */\n abort(reason?: any): void;\n}\n\ndeclare var AbortController: {\n prototype: AbortController;\n new(): AbortController;\n};\n\ninterface AbortSignalEventMap {\n \"abort\": Event;\n}\n\n/**\n * A signal object that allows you to communicate with a DOM request (such as a Fetch) and abort it if required via an AbortController object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal)\n */\ninterface AbortSignal extends EventTarget {\n /**\n * Returns true if this AbortSignal's AbortController has signaled to abort, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/aborted)\n */\n readonly aborted: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/abort_event) */\n onabort: ((this: AbortSignal, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/reason) */\n readonly reason: any;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/throwIfAborted) */\n throwIfAborted(): void;\n addEventListener(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var AbortSignal: {\n prototype: AbortSignal;\n new(): AbortSignal;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/abort_static) */\n abort(reason?: any): AbortSignal;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal/timeout_static) */\n timeout(milliseconds: number): AbortSignal;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbstractRange) */\ninterface AbstractRange {\n /**\n * Returns true if range is collapsed, and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbstractRange/collapsed)\n */\n readonly collapsed: boolean;\n /**\n * Returns range's end node.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbstractRange/endContainer)\n */\n readonly endContainer: Node;\n /**\n * Returns range's end offset.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbstractRange/endOffset)\n */\n readonly endOffset: number;\n /**\n * Returns range's start node.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbstractRange/startContainer)\n */\n readonly startContainer: Node;\n /**\n * Returns range's start offset.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AbstractRange/startOffset)\n */\n readonly startOffset: number;\n}\n\ndeclare var AbstractRange: {\n prototype: AbstractRange;\n new(): AbstractRange;\n};\n\ninterface AbstractWorkerEventMap {\n \"error\": ErrorEvent;\n}\n\ninterface AbstractWorker {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ServiceWorker/error_event) */\n onerror: ((this: AbstractWorker, ev: ErrorEvent) => any) | null;\n addEventListener(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\n/**\n * A node able to provide real-time frequency and time-domain analysis information. It is an AudioNode that passes the audio stream unchanged from the input to the output, but allows you to take the generated data, process it, and create audio visualizations.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode)\n */\ninterface AnalyserNode extends AudioNode {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/fftSize) */\n fftSize: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/frequencyBinCount) */\n readonly frequencyBinCount: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/maxDecibels) */\n maxDecibels: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/minDecibels) */\n minDecibels: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/smoothingTimeConstant) */\n smoothingTimeConstant: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/getByteFrequencyData) */\n getByteFrequencyData(array: Uint8Array): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/getByteTimeDomainData) */\n getByteTimeDomainData(array: Uint8Array): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/getFloatFrequencyData) */\n getFloatFrequencyData(array: Float32Array): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnalyserNode/getFloatTimeDomainData) */\n getFloatTimeDomainData(array: Float32Array): void;\n}\n\ndeclare var AnalyserNode: {\n prototype: AnalyserNode;\n new(context: BaseAudioContext, options?: AnalyserOptions): AnalyserNode;\n};\n\ninterface Animatable {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/animate) */\n animate(keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions): Animation;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/getAnimations) */\n getAnimations(options?: GetAnimationsOptions): Animation[];\n}\n\ninterface AnimationEventMap {\n \"cancel\": AnimationPlaybackEvent;\n \"finish\": AnimationPlaybackEvent;\n \"remove\": Event;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation) */\ninterface Animation extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/currentTime) */\n currentTime: CSSNumberish | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/effect) */\n effect: AnimationEffect | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/finished) */\n readonly finished: Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/id) */\n id: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/cancel_event) */\n oncancel: ((this: Animation, ev: AnimationPlaybackEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/finish_event) */\n onfinish: ((this: Animation, ev: AnimationPlaybackEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/remove_event) */\n onremove: ((this: Animation, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/pending) */\n readonly pending: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/playState) */\n readonly playState: AnimationPlayState;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/playbackRate) */\n playbackRate: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/ready) */\n readonly ready: Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/replaceState) */\n readonly replaceState: AnimationReplaceState;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/startTime) */\n startTime: CSSNumberish | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/timeline) */\n timeline: AnimationTimeline | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/cancel) */\n cancel(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/commitStyles) */\n commitStyles(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/finish) */\n finish(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/pause) */\n pause(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/persist) */\n persist(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/play) */\n play(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/reverse) */\n reverse(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Animation/updatePlaybackRate) */\n updatePlaybackRate(playbackRate: number): void;\n addEventListener(type: K, listener: (this: Animation, ev: AnimationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: Animation, ev: AnimationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var Animation: {\n prototype: Animation;\n new(effect?: AnimationEffect | null, timeline?: AnimationTimeline | null): Animation;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEffect) */\ninterface AnimationEffect {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEffect/getComputedTiming) */\n getComputedTiming(): ComputedEffectTiming;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEffect/getTiming) */\n getTiming(): EffectTiming;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEffect/updateTiming) */\n updateTiming(timing?: OptionalEffectTiming): void;\n}\n\ndeclare var AnimationEffect: {\n prototype: AnimationEffect;\n new(): AnimationEffect;\n};\n\n/**\n * Events providing information related to animations.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEvent)\n */\ninterface AnimationEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEvent/animationName) */\n readonly animationName: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEvent/elapsedTime) */\n readonly elapsedTime: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationEvent/pseudoElement) */\n readonly pseudoElement: string;\n}\n\ndeclare var AnimationEvent: {\n prototype: AnimationEvent;\n new(type: string, animationEventInitDict?: AnimationEventInit): AnimationEvent;\n};\n\ninterface AnimationFrameProvider {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/cancelAnimationFrame) */\n cancelAnimationFrame(handle: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/DedicatedWorkerGlobalScope/requestAnimationFrame) */\n requestAnimationFrame(callback: FrameRequestCallback): number;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationPlaybackEvent) */\ninterface AnimationPlaybackEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationPlaybackEvent/currentTime) */\n readonly currentTime: CSSNumberish | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationPlaybackEvent/timelineTime) */\n readonly timelineTime: CSSNumberish | null;\n}\n\ndeclare var AnimationPlaybackEvent: {\n prototype: AnimationPlaybackEvent;\n new(type: string, eventInitDict?: AnimationPlaybackEventInit): AnimationPlaybackEvent;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationTimeline) */\ninterface AnimationTimeline {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AnimationTimeline/currentTime) */\n readonly currentTime: CSSNumberish | null;\n}\n\ndeclare var AnimationTimeline: {\n prototype: AnimationTimeline;\n new(): AnimationTimeline;\n};\n\n/**\n * A DOM element's attribute as an object. In most DOM methods, you will probably directly retrieve the attribute as a string (e.g., Element.getAttribute(), but certain functions (e.g., Element.getAttributeNode()) or means of iterating give Attr types.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr)\n */\ninterface Attr extends Node {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/localName) */\n readonly localName: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/name) */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/namespaceURI) */\n readonly namespaceURI: string | null;\n readonly ownerDocument: Document;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/ownerElement) */\n readonly ownerElement: Element | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/prefix) */\n readonly prefix: string | null;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/specified)\n */\n readonly specified: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Attr/value) */\n value: string;\n}\n\ndeclare var Attr: {\n prototype: Attr;\n new(): Attr;\n};\n\n/**\n * A short audio asset residing in memory, created from an audio file using the AudioContext.decodeAudioData() method, or from raw data using AudioContext.createBuffer(). Once put into an AudioBuffer, the audio can then be played by being passed into an AudioBufferSourceNode.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer)\n */\ninterface AudioBuffer {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/duration) */\n readonly duration: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/length) */\n readonly length: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/numberOfChannels) */\n readonly numberOfChannels: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/sampleRate) */\n readonly sampleRate: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/copyFromChannel) */\n copyFromChannel(destination: Float32Array, channelNumber: number, bufferOffset?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/copyToChannel) */\n copyToChannel(source: Float32Array, channelNumber: number, bufferOffset?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBuffer/getChannelData) */\n getChannelData(channel: number): Float32Array;\n}\n\ndeclare var AudioBuffer: {\n prototype: AudioBuffer;\n new(options: AudioBufferOptions): AudioBuffer;\n};\n\n/**\n * An AudioScheduledSourceNode which represents an audio source consisting of in-memory audio data, stored in an AudioBuffer. It's especially useful for playing back audio which has particularly stringent timing accuracy requirements, such as for sounds that must match a specific rhythm and can be kept in memory rather than being played from disk or the network.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode)\n */\ninterface AudioBufferSourceNode extends AudioScheduledSourceNode {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/buffer) */\n buffer: AudioBuffer | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/detune) */\n readonly detune: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/loop) */\n loop: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/loopEnd) */\n loopEnd: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/loopStart) */\n loopStart: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/playbackRate) */\n readonly playbackRate: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioBufferSourceNode/start) */\n start(when?: number, offset?: number, duration?: number): void;\n addEventListener(type: K, listener: (this: AudioBufferSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: AudioBufferSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var AudioBufferSourceNode: {\n prototype: AudioBufferSourceNode;\n new(context: BaseAudioContext, options?: AudioBufferSourceOptions): AudioBufferSourceNode;\n};\n\n/**\n * An audio-processing graph built from audio modules linked together, each represented by an AudioNode.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext)\n */\ninterface AudioContext extends BaseAudioContext {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/baseLatency) */\n readonly baseLatency: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/outputLatency) */\n readonly outputLatency: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/close) */\n close(): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/createMediaElementSource) */\n createMediaElementSource(mediaElement: HTMLMediaElement): MediaElementAudioSourceNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/createMediaStreamDestination) */\n createMediaStreamDestination(): MediaStreamAudioDestinationNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/createMediaStreamSource) */\n createMediaStreamSource(mediaStream: MediaStream): MediaStreamAudioSourceNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/getOutputTimestamp) */\n getOutputTimestamp(): AudioTimestamp;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/resume) */\n resume(): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioContext/suspend) */\n suspend(): Promise;\n addEventListener(type: K, listener: (this: AudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: AudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var AudioContext: {\n prototype: AudioContext;\n new(contextOptions?: AudioContextOptions): AudioContext;\n};\n\n/**\n * AudioDestinationNode has no output (as it is the output, no more AudioNode can be linked after it in the audio graph) and one input. The number of channels in the input must be between 0 and the maxChannelCount value or an exception is raised.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDestinationNode)\n */\ninterface AudioDestinationNode extends AudioNode {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioDestinationNode/maxChannelCount) */\n readonly maxChannelCount: number;\n}\n\ndeclare var AudioDestinationNode: {\n prototype: AudioDestinationNode;\n new(): AudioDestinationNode;\n};\n\n/**\n * The position and orientation of the unique person listening to the audio scene, and is used in audio spatialization. All PannerNodes spatialize in relation to the AudioListener stored in the BaseAudioContext.listener attribute.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener)\n */\ninterface AudioListener {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/forwardX) */\n readonly forwardX: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/forwardY) */\n readonly forwardY: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/forwardZ) */\n readonly forwardZ: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/positionX) */\n readonly positionX: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/positionY) */\n readonly positionY: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/positionZ) */\n readonly positionZ: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/upX) */\n readonly upX: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/upY) */\n readonly upY: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/upZ) */\n readonly upZ: AudioParam;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/setOrientation)\n */\n setOrientation(x: number, y: number, z: number, xUp: number, yUp: number, zUp: number): void;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioListener/setPosition)\n */\n setPosition(x: number, y: number, z: number): void;\n}\n\ndeclare var AudioListener: {\n prototype: AudioListener;\n new(): AudioListener;\n};\n\n/**\n * A generic interface for representing an audio processing module. Examples include:\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode)\n */\ninterface AudioNode extends EventTarget {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/channelCount) */\n channelCount: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/channelCountMode) */\n channelCountMode: ChannelCountMode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/channelInterpretation) */\n channelInterpretation: ChannelInterpretation;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/context) */\n readonly context: BaseAudioContext;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/numberOfInputs) */\n readonly numberOfInputs: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/numberOfOutputs) */\n readonly numberOfOutputs: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/connect) */\n connect(destinationNode: AudioNode, output?: number, input?: number): AudioNode;\n connect(destinationParam: AudioParam, output?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioNode/disconnect) */\n disconnect(): void;\n disconnect(output: number): void;\n disconnect(destinationNode: AudioNode): void;\n disconnect(destinationNode: AudioNode, output: number): void;\n disconnect(destinationNode: AudioNode, output: number, input: number): void;\n disconnect(destinationParam: AudioParam): void;\n disconnect(destinationParam: AudioParam, output: number): void;\n}\n\ndeclare var AudioNode: {\n prototype: AudioNode;\n new(): AudioNode;\n};\n\n/**\n * The Web Audio API's AudioParam interface represents an audio-related parameter, usually a parameter of an AudioNode (such as GainNode.gain).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam)\n */\ninterface AudioParam {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/automationRate) */\n automationRate: AutomationRate;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/defaultValue) */\n readonly defaultValue: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/maxValue) */\n readonly maxValue: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/minValue) */\n readonly minValue: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/value) */\n value: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/cancelAndHoldAtTime) */\n cancelAndHoldAtTime(cancelTime: number): AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/cancelScheduledValues) */\n cancelScheduledValues(cancelTime: number): AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/exponentialRampToValueAtTime) */\n exponentialRampToValueAtTime(value: number, endTime: number): AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/linearRampToValueAtTime) */\n linearRampToValueAtTime(value: number, endTime: number): AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/setTargetAtTime) */\n setTargetAtTime(target: number, startTime: number, timeConstant: number): AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/setValueAtTime) */\n setValueAtTime(value: number, startTime: number): AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParam/setValueCurveAtTime) */\n setValueCurveAtTime(values: number[] | Float32Array, startTime: number, duration: number): AudioParam;\n}\n\ndeclare var AudioParam: {\n prototype: AudioParam;\n new(): AudioParam;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioParamMap) */\ninterface AudioParamMap {\n forEach(callbackfn: (value: AudioParam, key: string, parent: AudioParamMap) => void, thisArg?: any): void;\n}\n\ndeclare var AudioParamMap: {\n prototype: AudioParamMap;\n new(): AudioParamMap;\n};\n\n/**\n * The Web Audio API events that occur when a ScriptProcessorNode input buffer is ready to be processed.\n * @deprecated As of the August 29 2014 Web Audio API spec publication, this feature has been marked as deprecated, and is soon to be replaced by AudioWorklet.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioProcessingEvent)\n */\ninterface AudioProcessingEvent extends Event {\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioProcessingEvent/inputBuffer)\n */\n readonly inputBuffer: AudioBuffer;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioProcessingEvent/outputBuffer)\n */\n readonly outputBuffer: AudioBuffer;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioProcessingEvent/playbackTime)\n */\n readonly playbackTime: number;\n}\n\n/** @deprecated */\ndeclare var AudioProcessingEvent: {\n prototype: AudioProcessingEvent;\n new(type: string, eventInitDict: AudioProcessingEventInit): AudioProcessingEvent;\n};\n\ninterface AudioScheduledSourceNodeEventMap {\n \"ended\": Event;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioScheduledSourceNode) */\ninterface AudioScheduledSourceNode extends AudioNode {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioScheduledSourceNode/ended_event) */\n onended: ((this: AudioScheduledSourceNode, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioScheduledSourceNode/start) */\n start(when?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioScheduledSourceNode/stop) */\n stop(when?: number): void;\n addEventListener(type: K, listener: (this: AudioScheduledSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: AudioScheduledSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var AudioScheduledSourceNode: {\n prototype: AudioScheduledSourceNode;\n new(): AudioScheduledSourceNode;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorklet)\n */\ninterface AudioWorklet extends Worklet {\n}\n\ndeclare var AudioWorklet: {\n prototype: AudioWorklet;\n new(): AudioWorklet;\n};\n\ninterface AudioWorkletNodeEventMap {\n \"processorerror\": Event;\n}\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletNode)\n */\ninterface AudioWorkletNode extends AudioNode {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletNode/processorerror_event) */\n onprocessorerror: ((this: AudioWorkletNode, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletNode/parameters) */\n readonly parameters: AudioParamMap;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AudioWorkletNode/port) */\n readonly port: MessagePort;\n addEventListener(type: K, listener: (this: AudioWorkletNode, ev: AudioWorkletNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: AudioWorkletNode, ev: AudioWorkletNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var AudioWorkletNode: {\n prototype: AudioWorkletNode;\n new(context: BaseAudioContext, name: string, options?: AudioWorkletNodeOptions): AudioWorkletNode;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAssertionResponse)\n */\ninterface AuthenticatorAssertionResponse extends AuthenticatorResponse {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAssertionResponse/authenticatorData) */\n readonly authenticatorData: ArrayBuffer;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAssertionResponse/signature) */\n readonly signature: ArrayBuffer;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAssertionResponse/userHandle) */\n readonly userHandle: ArrayBuffer | null;\n}\n\ndeclare var AuthenticatorAssertionResponse: {\n prototype: AuthenticatorAssertionResponse;\n new(): AuthenticatorAssertionResponse;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse)\n */\ninterface AuthenticatorAttestationResponse extends AuthenticatorResponse {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse/attestationObject) */\n readonly attestationObject: ArrayBuffer;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse/getAuthenticatorData) */\n getAuthenticatorData(): ArrayBuffer;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse/getPublicKey) */\n getPublicKey(): ArrayBuffer | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse/getPublicKeyAlgorithm) */\n getPublicKeyAlgorithm(): COSEAlgorithmIdentifier;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse/getTransports) */\n getTransports(): string[];\n}\n\ndeclare var AuthenticatorAttestationResponse: {\n prototype: AuthenticatorAttestationResponse;\n new(): AuthenticatorAttestationResponse;\n};\n\n/**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorResponse)\n */\ninterface AuthenticatorResponse {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorResponse/clientDataJSON) */\n readonly clientDataJSON: ArrayBuffer;\n}\n\ndeclare var AuthenticatorResponse: {\n prototype: AuthenticatorResponse;\n new(): AuthenticatorResponse;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BarProp) */\ninterface BarProp {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BarProp/visible) */\n readonly visible: boolean;\n}\n\ndeclare var BarProp: {\n prototype: BarProp;\n new(): BarProp;\n};\n\ninterface BaseAudioContextEventMap {\n \"statechange\": Event;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext) */\ninterface BaseAudioContext extends EventTarget {\n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/audioWorklet)\n */\n readonly audioWorklet: AudioWorklet;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/currentTime) */\n readonly currentTime: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/destination) */\n readonly destination: AudioDestinationNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/listener) */\n readonly listener: AudioListener;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/statechange_event) */\n onstatechange: ((this: BaseAudioContext, ev: Event) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/sampleRate) */\n readonly sampleRate: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/state) */\n readonly state: AudioContextState;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createAnalyser) */\n createAnalyser(): AnalyserNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createBiquadFilter) */\n createBiquadFilter(): BiquadFilterNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createBuffer) */\n createBuffer(numberOfChannels: number, length: number, sampleRate: number): AudioBuffer;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createBufferSource) */\n createBufferSource(): AudioBufferSourceNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createChannelMerger) */\n createChannelMerger(numberOfInputs?: number): ChannelMergerNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createChannelSplitter) */\n createChannelSplitter(numberOfOutputs?: number): ChannelSplitterNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createConstantSource) */\n createConstantSource(): ConstantSourceNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createConvolver) */\n createConvolver(): ConvolverNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createDelay) */\n createDelay(maxDelayTime?: number): DelayNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createDynamicsCompressor) */\n createDynamicsCompressor(): DynamicsCompressorNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createGain) */\n createGain(): GainNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createIIRFilter) */\n createIIRFilter(feedforward: number[], feedback: number[]): IIRFilterNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createOscillator) */\n createOscillator(): OscillatorNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createPanner) */\n createPanner(): PannerNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createPeriodicWave) */\n createPeriodicWave(real: number[] | Float32Array, imag: number[] | Float32Array, constraints?: PeriodicWaveConstraints): PeriodicWave;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createScriptProcessor)\n */\n createScriptProcessor(bufferSize?: number, numberOfInputChannels?: number, numberOfOutputChannels?: number): ScriptProcessorNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createStereoPanner) */\n createStereoPanner(): StereoPannerNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/createWaveShaper) */\n createWaveShaper(): WaveShaperNode;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BaseAudioContext/decodeAudioData) */\n decodeAudioData(audioData: ArrayBuffer, successCallback?: DecodeSuccessCallback | null, errorCallback?: DecodeErrorCallback | null): Promise;\n addEventListener(type: K, listener: (this: BaseAudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: BaseAudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var BaseAudioContext: {\n prototype: BaseAudioContext;\n new(): BaseAudioContext;\n};\n\n/**\n * The beforeunload event is fired when the window, the document and its resources are about to be unloaded.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BeforeUnloadEvent)\n */\ninterface BeforeUnloadEvent extends Event {\n /** @deprecated */\n returnValue: any;\n}\n\ndeclare var BeforeUnloadEvent: {\n prototype: BeforeUnloadEvent;\n new(): BeforeUnloadEvent;\n};\n\n/**\n * A simple low-order filter, and is created using the AudioContext.createBiquadFilter() method. It is an AudioNode that can represent different kinds of filters, tone control devices, and graphic equalizers.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode)\n */\ninterface BiquadFilterNode extends AudioNode {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode/Q) */\n readonly Q: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode/detune) */\n readonly detune: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode/frequency) */\n readonly frequency: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode/gain) */\n readonly gain: AudioParam;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode/type) */\n type: BiquadFilterType;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BiquadFilterNode/getFrequencyResponse) */\n getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array): void;\n}\n\ndeclare var BiquadFilterNode: {\n prototype: BiquadFilterNode;\n new(context: BaseAudioContext, options?: BiquadFilterOptions): BiquadFilterNode;\n};\n\n/**\n * A file-like object of immutable, raw data. Blobs represent data that isn't necessarily in a JavaScript-native format. The File interface is based on Blob, inheriting blob functionality and expanding it to support files on the user's system.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob)\n */\ninterface Blob {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/size) */\n readonly size: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/type) */\n readonly type: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/arrayBuffer) */\n arrayBuffer(): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/slice) */\n slice(start?: number, end?: number, contentType?: string): Blob;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/stream) */\n stream(): ReadableStream;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Blob/text) */\n text(): Promise;\n}\n\ndeclare var Blob: {\n prototype: Blob;\n new(blobParts?: BlobPart[], options?: BlobPropertyBag): Blob;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BlobEvent) */\ninterface BlobEvent extends Event {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BlobEvent/data) */\n readonly data: Blob;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BlobEvent/timecode) */\n readonly timecode: DOMHighResTimeStamp;\n}\n\ndeclare var BlobEvent: {\n prototype: BlobEvent;\n new(type: string, eventInitDict: BlobEventInit): BlobEvent;\n};\n\ninterface Body {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/body) */\n readonly body: ReadableStream | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/bodyUsed) */\n readonly bodyUsed: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/arrayBuffer) */\n arrayBuffer(): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/blob) */\n blob(): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/formData) */\n formData(): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/json) */\n json(): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Request/text) */\n text(): Promise;\n}\n\ninterface BroadcastChannelEventMap {\n \"message\": MessageEvent;\n \"messageerror\": MessageEvent;\n}\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel) */\ninterface BroadcastChannel extends EventTarget {\n /**\n * Returns the channel name (as passed to the constructor).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/name)\n */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/message_event) */\n onmessage: ((this: BroadcastChannel, ev: MessageEvent) => any) | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/messageerror_event) */\n onmessageerror: ((this: BroadcastChannel, ev: MessageEvent) => any) | null;\n /**\n * Closes the BroadcastChannel object, opening it up to garbage collection.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/close)\n */\n close(): void;\n /**\n * Sends the given message to other BroadcastChannel objects set up for this channel. Messages can be structured objects, e.g. nested objects and arrays.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/BroadcastChannel/postMessage)\n */\n postMessage(message: any): void;\n addEventListener(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var BroadcastChannel: {\n prototype: BroadcastChannel;\n new(name: string): BroadcastChannel;\n};\n\n/**\n * This Streams API interface provides a built-in byte length queuing strategy that can be used when constructing streams.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ByteLengthQueuingStrategy)\n */\ninterface ByteLengthQueuingStrategy extends QueuingStrategy {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ByteLengthQueuingStrategy/highWaterMark) */\n readonly highWaterMark: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/ByteLengthQueuingStrategy/size) */\n readonly size: QueuingStrategySize;\n}\n\ndeclare var ByteLengthQueuingStrategy: {\n prototype: ByteLengthQueuingStrategy;\n new(init: QueuingStrategyInit): ByteLengthQueuingStrategy;\n};\n\n/**\n * A CDATA section that can be used within XML to include extended portions of unescaped text. The symbols < and & don’t need escaping as they normally do when inside a CDATA section.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CDATASection)\n */\ninterface CDATASection extends Text {\n}\n\ndeclare var CDATASection: {\n prototype: CDATASection;\n new(): CDATASection;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSAnimation) */\ninterface CSSAnimation extends Animation {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSAnimation/animationName) */\n readonly animationName: string;\n addEventListener(type: K, listener: (this: CSSAnimation, ev: AnimationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: CSSAnimation, ev: AnimationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var CSSAnimation: {\n prototype: CSSAnimation;\n new(): CSSAnimation;\n};\n\n/**\n * A single condition CSS at-rule, which consists of a condition and a statement block. It is a child of CSSGroupingRule.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSConditionRule)\n */\ninterface CSSConditionRule extends CSSGroupingRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSConditionRule/conditionText) */\n readonly conditionText: string;\n}\n\ndeclare var CSSConditionRule: {\n prototype: CSSConditionRule;\n new(): CSSConditionRule;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSContainerRule) */\ninterface CSSContainerRule extends CSSConditionRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSContainerRule/containerName) */\n readonly containerName: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSContainerRule/containerQuery) */\n readonly containerQuery: string;\n}\n\ndeclare var CSSContainerRule: {\n prototype: CSSContainerRule;\n new(): CSSContainerRule;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule) */\ninterface CSSCounterStyleRule extends CSSRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/additiveSymbols) */\n additiveSymbols: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/fallback) */\n fallback: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/name) */\n name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/negative) */\n negative: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/pad) */\n pad: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/prefix) */\n prefix: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/range) */\n range: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/speakAs) */\n speakAs: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/suffix) */\n suffix: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/symbols) */\n symbols: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSCounterStyleRule/system) */\n system: string;\n}\n\ndeclare var CSSCounterStyleRule: {\n prototype: CSSCounterStyleRule;\n new(): CSSCounterStyleRule;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontFaceRule) */\ninterface CSSFontFaceRule extends CSSRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontFaceRule/style) */\n readonly style: CSSStyleDeclaration;\n}\n\ndeclare var CSSFontFaceRule: {\n prototype: CSSFontFaceRule;\n new(): CSSFontFaceRule;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontFeatureValuesRule) */\ninterface CSSFontFeatureValuesRule extends CSSRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontFeatureValuesRule/fontFamily) */\n fontFamily: string;\n}\n\ndeclare var CSSFontFeatureValuesRule: {\n prototype: CSSFontFeatureValuesRule;\n new(): CSSFontFeatureValuesRule;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontPaletteValuesRule) */\ninterface CSSFontPaletteValuesRule extends CSSRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontPaletteValuesRule/basePalette) */\n readonly basePalette: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontPaletteValuesRule/fontFamily) */\n readonly fontFamily: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontPaletteValuesRule/name) */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSFontPaletteValuesRule/overrideColors) */\n readonly overrideColors: string;\n}\n\ndeclare var CSSFontPaletteValuesRule: {\n prototype: CSSFontPaletteValuesRule;\n new(): CSSFontPaletteValuesRule;\n};\n\n/**\n * Any CSS at-rule that contains other rules nested within it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSGroupingRule)\n */\ninterface CSSGroupingRule extends CSSRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSGroupingRule/cssRules) */\n readonly cssRules: CSSRuleList;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSGroupingRule/deleteRule) */\n deleteRule(index: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSGroupingRule/insertRule) */\n insertRule(rule: string, index?: number): number;\n}\n\ndeclare var CSSGroupingRule: {\n prototype: CSSGroupingRule;\n new(): CSSGroupingRule;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImageValue) */\ninterface CSSImageValue extends CSSStyleValue {\n}\n\ndeclare var CSSImageValue: {\n prototype: CSSImageValue;\n new(): CSSImageValue;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImportRule) */\ninterface CSSImportRule extends CSSRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImportRule/href) */\n readonly href: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImportRule/layerName) */\n readonly layerName: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImportRule/media) */\n readonly media: MediaList;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImportRule/styleSheet) */\n readonly styleSheet: CSSStyleSheet | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSImportRule/supportsText) */\n readonly supportsText: string | null;\n}\n\ndeclare var CSSImportRule: {\n prototype: CSSImportRule;\n new(): CSSImportRule;\n};\n\n/**\n * An object representing a set of style for a given keyframe. It corresponds to the contains of a single keyframe of a @keyframes at-rule. It implements the CSSRule interface with a type value of 8 (CSSRule.KEYFRAME_RULE).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframeRule)\n */\ninterface CSSKeyframeRule extends CSSRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframeRule/keyText) */\n keyText: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframeRule/style) */\n readonly style: CSSStyleDeclaration;\n}\n\ndeclare var CSSKeyframeRule: {\n prototype: CSSKeyframeRule;\n new(): CSSKeyframeRule;\n};\n\n/**\n * An object representing a complete set of keyframes for a CSS animation. It corresponds to the contains of a whole @keyframes at-rule. It implements the CSSRule interface with a type value of 7 (CSSRule.KEYFRAMES_RULE).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule)\n */\ninterface CSSKeyframesRule extends CSSRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule/cssRules) */\n readonly cssRules: CSSRuleList;\n readonly length: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule/name) */\n name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule/appendRule) */\n appendRule(rule: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule/deleteRule) */\n deleteRule(select: string): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeyframesRule/findRule) */\n findRule(select: string): CSSKeyframeRule | null;\n [index: number]: CSSKeyframeRule;\n}\n\ndeclare var CSSKeyframesRule: {\n prototype: CSSKeyframesRule;\n new(): CSSKeyframesRule;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeywordValue) */\ninterface CSSKeywordValue extends CSSStyleValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSKeywordValue/value) */\n value: string;\n}\n\ndeclare var CSSKeywordValue: {\n prototype: CSSKeywordValue;\n new(value: string): CSSKeywordValue;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSLayerBlockRule) */\ninterface CSSLayerBlockRule extends CSSGroupingRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSLayerBlockRule/name) */\n readonly name: string;\n}\n\ndeclare var CSSLayerBlockRule: {\n prototype: CSSLayerBlockRule;\n new(): CSSLayerBlockRule;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSLayerStatementRule) */\ninterface CSSLayerStatementRule extends CSSRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSLayerStatementRule/nameList) */\n readonly nameList: ReadonlyArray;\n}\n\ndeclare var CSSLayerStatementRule: {\n prototype: CSSLayerStatementRule;\n new(): CSSLayerStatementRule;\n};\n\ninterface CSSMathClamp extends CSSMathValue {\n readonly lower: CSSNumericValue;\n readonly upper: CSSNumericValue;\n readonly value: CSSNumericValue;\n}\n\ndeclare var CSSMathClamp: {\n prototype: CSSMathClamp;\n new(lower: CSSNumberish, value: CSSNumberish, upper: CSSNumberish): CSSMathClamp;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathInvert) */\ninterface CSSMathInvert extends CSSMathValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathInvert/value) */\n readonly value: CSSNumericValue;\n}\n\ndeclare var CSSMathInvert: {\n prototype: CSSMathInvert;\n new(arg: CSSNumberish): CSSMathInvert;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathMax) */\ninterface CSSMathMax extends CSSMathValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathMax/values) */\n readonly values: CSSNumericArray;\n}\n\ndeclare var CSSMathMax: {\n prototype: CSSMathMax;\n new(...args: CSSNumberish[]): CSSMathMax;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathMin) */\ninterface CSSMathMin extends CSSMathValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathMin/values) */\n readonly values: CSSNumericArray;\n}\n\ndeclare var CSSMathMin: {\n prototype: CSSMathMin;\n new(...args: CSSNumberish[]): CSSMathMin;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathNegate) */\ninterface CSSMathNegate extends CSSMathValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathNegate/value) */\n readonly value: CSSNumericValue;\n}\n\ndeclare var CSSMathNegate: {\n prototype: CSSMathNegate;\n new(arg: CSSNumberish): CSSMathNegate;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathProduct) */\ninterface CSSMathProduct extends CSSMathValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathProduct/values) */\n readonly values: CSSNumericArray;\n}\n\ndeclare var CSSMathProduct: {\n prototype: CSSMathProduct;\n new(...args: CSSNumberish[]): CSSMathProduct;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathSum) */\ninterface CSSMathSum extends CSSMathValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathSum/values) */\n readonly values: CSSNumericArray;\n}\n\ndeclare var CSSMathSum: {\n prototype: CSSMathSum;\n new(...args: CSSNumberish[]): CSSMathSum;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathValue) */\ninterface CSSMathValue extends CSSNumericValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMathValue/operator) */\n readonly operator: CSSMathOperator;\n}\n\ndeclare var CSSMathValue: {\n prototype: CSSMathValue;\n new(): CSSMathValue;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMatrixComponent) */\ninterface CSSMatrixComponent extends CSSTransformComponent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMatrixComponent/matrix) */\n matrix: DOMMatrix;\n}\n\ndeclare var CSSMatrixComponent: {\n prototype: CSSMatrixComponent;\n new(matrix: DOMMatrixReadOnly, options?: CSSMatrixComponentOptions): CSSMatrixComponent;\n};\n\n/**\n * A single CSS @media rule. It implements the CSSConditionRule interface, and therefore the CSSGroupingRule and the CSSRule interface with a type value of 4 (CSSRule.MEDIA_RULE).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMediaRule)\n */\ninterface CSSMediaRule extends CSSConditionRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSMediaRule/media) */\n readonly media: MediaList;\n}\n\ndeclare var CSSMediaRule: {\n prototype: CSSMediaRule;\n new(): CSSMediaRule;\n};\n\n/**\n * An object representing a single CSS @namespace at-rule. It implements the CSSRule interface, with a type value of 10 (CSSRule.NAMESPACE_RULE).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNamespaceRule)\n */\ninterface CSSNamespaceRule extends CSSRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNamespaceRule/namespaceURI) */\n readonly namespaceURI: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNamespaceRule/prefix) */\n readonly prefix: string;\n}\n\ndeclare var CSSNamespaceRule: {\n prototype: CSSNamespaceRule;\n new(): CSSNamespaceRule;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericArray) */\ninterface CSSNumericArray {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericArray/length) */\n readonly length: number;\n forEach(callbackfn: (value: CSSNumericValue, key: number, parent: CSSNumericArray) => void, thisArg?: any): void;\n [index: number]: CSSNumericValue;\n}\n\ndeclare var CSSNumericArray: {\n prototype: CSSNumericArray;\n new(): CSSNumericArray;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue) */\ninterface CSSNumericValue extends CSSStyleValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/add) */\n add(...values: CSSNumberish[]): CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/div) */\n div(...values: CSSNumberish[]): CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/equals) */\n equals(...value: CSSNumberish[]): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/max) */\n max(...values: CSSNumberish[]): CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/min) */\n min(...values: CSSNumberish[]): CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/mul) */\n mul(...values: CSSNumberish[]): CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/sub) */\n sub(...values: CSSNumberish[]): CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/to) */\n to(unit: string): CSSUnitValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/toSum) */\n toSum(...units: string[]): CSSMathSum;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/type) */\n type(): CSSNumericType;\n}\n\ndeclare var CSSNumericValue: {\n prototype: CSSNumericValue;\n new(): CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSNumericValue/parse_static) */\n parse(cssText: string): CSSNumericValue;\n};\n\n/**\n * CSSPageRule is an interface representing a single CSS @page rule. It implements the CSSRule interface with a type value of 6 (CSSRule.PAGE_RULE).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPageRule)\n */\ninterface CSSPageRule extends CSSGroupingRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPageRule/selectorText) */\n selectorText: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPageRule/style) */\n readonly style: CSSStyleDeclaration;\n}\n\ndeclare var CSSPageRule: {\n prototype: CSSPageRule;\n new(): CSSPageRule;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPerspective) */\ninterface CSSPerspective extends CSSTransformComponent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPerspective/length) */\n length: CSSPerspectiveValue;\n}\n\ndeclare var CSSPerspective: {\n prototype: CSSPerspective;\n new(length: CSSPerspectiveValue): CSSPerspective;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPropertyRule) */\ninterface CSSPropertyRule extends CSSRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPropertyRule/inherits) */\n readonly inherits: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPropertyRule/initialValue) */\n readonly initialValue: string | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPropertyRule/name) */\n readonly name: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSPropertyRule/syntax) */\n readonly syntax: string;\n}\n\ndeclare var CSSPropertyRule: {\n prototype: CSSPropertyRule;\n new(): CSSPropertyRule;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate) */\ninterface CSSRotate extends CSSTransformComponent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate/angle) */\n angle: CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate/x) */\n x: CSSNumberish;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate/y) */\n y: CSSNumberish;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRotate/z) */\n z: CSSNumberish;\n}\n\ndeclare var CSSRotate: {\n prototype: CSSRotate;\n new(angle: CSSNumericValue): CSSRotate;\n new(x: CSSNumberish, y: CSSNumberish, z: CSSNumberish, angle: CSSNumericValue): CSSRotate;\n};\n\n/**\n * A single CSS rule. There are several types of rules, listed in the Type constants section below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRule)\n */\ninterface CSSRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRule/cssText) */\n cssText: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRule/parentRule) */\n readonly parentRule: CSSRule | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRule/parentStyleSheet) */\n readonly parentStyleSheet: CSSStyleSheet | null;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRule/type)\n */\n readonly type: number;\n readonly STYLE_RULE: 1;\n readonly CHARSET_RULE: 2;\n readonly IMPORT_RULE: 3;\n readonly MEDIA_RULE: 4;\n readonly FONT_FACE_RULE: 5;\n readonly PAGE_RULE: 6;\n readonly NAMESPACE_RULE: 10;\n readonly KEYFRAMES_RULE: 7;\n readonly KEYFRAME_RULE: 8;\n readonly SUPPORTS_RULE: 12;\n readonly COUNTER_STYLE_RULE: 11;\n readonly FONT_FEATURE_VALUES_RULE: 14;\n}\n\ndeclare var CSSRule: {\n prototype: CSSRule;\n new(): CSSRule;\n readonly STYLE_RULE: 1;\n readonly CHARSET_RULE: 2;\n readonly IMPORT_RULE: 3;\n readonly MEDIA_RULE: 4;\n readonly FONT_FACE_RULE: 5;\n readonly PAGE_RULE: 6;\n readonly NAMESPACE_RULE: 10;\n readonly KEYFRAMES_RULE: 7;\n readonly KEYFRAME_RULE: 8;\n readonly SUPPORTS_RULE: 12;\n readonly COUNTER_STYLE_RULE: 11;\n readonly FONT_FEATURE_VALUES_RULE: 14;\n};\n\n/**\n * A CSSRuleList is an (indirect-modify only) array-like object containing an ordered collection of CSSRule objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRuleList)\n */\ninterface CSSRuleList {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRuleList/length) */\n readonly length: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSRuleList/item) */\n item(index: number): CSSRule | null;\n [index: number]: CSSRule;\n}\n\ndeclare var CSSRuleList: {\n prototype: CSSRuleList;\n new(): CSSRuleList;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScale) */\ninterface CSSScale extends CSSTransformComponent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScale/x) */\n x: CSSNumberish;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScale/y) */\n y: CSSNumberish;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSScale/z) */\n z: CSSNumberish;\n}\n\ndeclare var CSSScale: {\n prototype: CSSScale;\n new(x: CSSNumberish, y: CSSNumberish, z?: CSSNumberish): CSSScale;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkew) */\ninterface CSSSkew extends CSSTransformComponent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkew/ax) */\n ax: CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkew/ay) */\n ay: CSSNumericValue;\n}\n\ndeclare var CSSSkew: {\n prototype: CSSSkew;\n new(ax: CSSNumericValue, ay: CSSNumericValue): CSSSkew;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkewX) */\ninterface CSSSkewX extends CSSTransformComponent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkewX/ax) */\n ax: CSSNumericValue;\n}\n\ndeclare var CSSSkewX: {\n prototype: CSSSkewX;\n new(ax: CSSNumericValue): CSSSkewX;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkewY) */\ninterface CSSSkewY extends CSSTransformComponent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSkewY/ay) */\n ay: CSSNumericValue;\n}\n\ndeclare var CSSSkewY: {\n prototype: CSSSkewY;\n new(ay: CSSNumericValue): CSSSkewY;\n};\n\n/**\n * An object that is a CSS declaration block, and exposes style information and various style-related methods and properties.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration)\n */\ninterface CSSStyleDeclaration {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/accent-color) */\n accentColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/align-content) */\n alignContent: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/align-items) */\n alignItems: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/align-self) */\n alignSelf: string;\n alignmentBaseline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/all) */\n all: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation) */\n animation: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-composition) */\n animationComposition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-delay) */\n animationDelay: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-direction) */\n animationDirection: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-duration) */\n animationDuration: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-fill-mode) */\n animationFillMode: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-iteration-count) */\n animationIterationCount: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-name) */\n animationName: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-play-state) */\n animationPlayState: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-timing-function) */\n animationTimingFunction: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/appearance) */\n appearance: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/aspect-ratio) */\n aspectRatio: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/backdrop-filter) */\n backdropFilter: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/backface-visibility) */\n backfaceVisibility: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background) */\n background: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-attachment) */\n backgroundAttachment: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-blend-mode) */\n backgroundBlendMode: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-clip) */\n backgroundClip: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-color) */\n backgroundColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-image) */\n backgroundImage: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-origin) */\n backgroundOrigin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-position) */\n backgroundPosition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-position-x) */\n backgroundPositionX: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-position-y) */\n backgroundPositionY: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-repeat) */\n backgroundRepeat: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-size) */\n backgroundSize: string;\n baselineShift: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/baseline-source) */\n baselineSource: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/block-size) */\n blockSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border) */\n border: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block) */\n borderBlock: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-color) */\n borderBlockColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-end) */\n borderBlockEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-end-color) */\n borderBlockEndColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-end-style) */\n borderBlockEndStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-end-width) */\n borderBlockEndWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-start) */\n borderBlockStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-start-color) */\n borderBlockStartColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-start-style) */\n borderBlockStartStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-start-width) */\n borderBlockStartWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-style) */\n borderBlockStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-block-width) */\n borderBlockWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom) */\n borderBottom: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-color) */\n borderBottomColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-left-radius) */\n borderBottomLeftRadius: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-right-radius) */\n borderBottomRightRadius: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-style) */\n borderBottomStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-width) */\n borderBottomWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-collapse) */\n borderCollapse: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-color) */\n borderColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-end-end-radius) */\n borderEndEndRadius: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-end-start-radius) */\n borderEndStartRadius: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-image) */\n borderImage: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-image-outset) */\n borderImageOutset: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-image-repeat) */\n borderImageRepeat: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-image-slice) */\n borderImageSlice: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-image-source) */\n borderImageSource: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-image-width) */\n borderImageWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline) */\n borderInline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-color) */\n borderInlineColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-end) */\n borderInlineEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-end-color) */\n borderInlineEndColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-end-style) */\n borderInlineEndStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-end-width) */\n borderInlineEndWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-start) */\n borderInlineStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-start-color) */\n borderInlineStartColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-start-style) */\n borderInlineStartStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-start-width) */\n borderInlineStartWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-style) */\n borderInlineStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-inline-width) */\n borderInlineWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-left) */\n borderLeft: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-left-color) */\n borderLeftColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-left-style) */\n borderLeftStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-left-width) */\n borderLeftWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-radius) */\n borderRadius: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-right) */\n borderRight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-right-color) */\n borderRightColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-right-style) */\n borderRightStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-right-width) */\n borderRightWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-spacing) */\n borderSpacing: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-start-end-radius) */\n borderStartEndRadius: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-start-start-radius) */\n borderStartStartRadius: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-style) */\n borderStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top) */\n borderTop: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-color) */\n borderTopColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-left-radius) */\n borderTopLeftRadius: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-right-radius) */\n borderTopRightRadius: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-style) */\n borderTopStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-width) */\n borderTopWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-width) */\n borderWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/bottom) */\n bottom: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-shadow) */\n boxShadow: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-sizing) */\n boxSizing: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/break-after) */\n breakAfter: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/break-before) */\n breakBefore: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/break-inside) */\n breakInside: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/caption-side) */\n captionSide: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/caret-color) */\n caretColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/clear) */\n clear: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/clip)\n */\n clip: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/clip-path) */\n clipPath: string;\n clipRule: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/color) */\n color: string;\n colorInterpolation: string;\n colorInterpolationFilters: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/color-scheme) */\n colorScheme: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-count) */\n columnCount: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-fill) */\n columnFill: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-gap) */\n columnGap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-rule) */\n columnRule: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-rule-color) */\n columnRuleColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-rule-style) */\n columnRuleStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-rule-width) */\n columnRuleWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-span) */\n columnSpan: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/column-width) */\n columnWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/columns) */\n columns: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/contain) */\n contain: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-contain-intrinsic-block-size) */\n containIntrinsicBlockSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-height) */\n containIntrinsicHeight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-contain-intrinsic-inline-size) */\n containIntrinsicInlineSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-size) */\n containIntrinsicSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/contain-intrinsic-width) */\n containIntrinsicWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/container) */\n container: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/container-name) */\n containerName: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/container-type) */\n containerType: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/content) */\n content: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/counter-increment) */\n counterIncrement: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/counter-reset) */\n counterReset: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/counter-set) */\n counterSet: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/cssFloat) */\n cssFloat: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/cssText) */\n cssText: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/cursor) */\n cursor: string;\n cx: string;\n cy: string;\n d: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/direction) */\n direction: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/display) */\n display: string;\n dominantBaseline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/empty-cells) */\n emptyCells: string;\n fill: string;\n fillOpacity: string;\n fillRule: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/filter) */\n filter: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex) */\n flex: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-basis) */\n flexBasis: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-direction) */\n flexDirection: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-flow) */\n flexFlow: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-grow) */\n flexGrow: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-shrink) */\n flexShrink: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-wrap) */\n flexWrap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/float) */\n float: string;\n floodColor: string;\n floodOpacity: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font) */\n font: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-family) */\n fontFamily: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-feature-settings) */\n fontFeatureSettings: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-kerning) */\n fontKerning: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-optical-sizing) */\n fontOpticalSizing: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-palette) */\n fontPalette: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-size) */\n fontSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-size-adjust) */\n fontSizeAdjust: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-stretch) */\n fontStretch: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-style) */\n fontStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-synthesis) */\n fontSynthesis: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-synthesis-small-caps) */\n fontSynthesisSmallCaps: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-synthesis-style) */\n fontSynthesisStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-synthesis-weight) */\n fontSynthesisWeight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant) */\n fontVariant: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-alternates) */\n fontVariantAlternates: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-caps) */\n fontVariantCaps: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-east-asian) */\n fontVariantEastAsian: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-ligatures) */\n fontVariantLigatures: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-numeric) */\n fontVariantNumeric: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variant-position) */\n fontVariantPosition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-variation-settings) */\n fontVariationSettings: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/font-weight) */\n fontWeight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/forced-color-adjust) */\n forcedColorAdjust: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/gap) */\n gap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid) */\n grid: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-area) */\n gridArea: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-auto-columns) */\n gridAutoColumns: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-auto-flow) */\n gridAutoFlow: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-auto-rows) */\n gridAutoRows: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-column) */\n gridColumn: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-column-end) */\n gridColumnEnd: string;\n /** @deprecated This is a legacy alias of `columnGap`. */\n gridColumnGap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-column-start) */\n gridColumnStart: string;\n /** @deprecated This is a legacy alias of `gap`. */\n gridGap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-row) */\n gridRow: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-row-end) */\n gridRowEnd: string;\n /** @deprecated This is a legacy alias of `rowGap`. */\n gridRowGap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-row-start) */\n gridRowStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-template) */\n gridTemplate: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-template-areas) */\n gridTemplateAreas: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-template-columns) */\n gridTemplateColumns: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/grid-template-rows) */\n gridTemplateRows: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/height) */\n height: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/hyphenate-character) */\n hyphenateCharacter: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/hyphens) */\n hyphens: string;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/image-orientation)\n */\n imageOrientation: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/image-rendering) */\n imageRendering: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inline-size) */\n inlineSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset) */\n inset: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset-block) */\n insetBlock: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset-block-end) */\n insetBlockEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset-block-start) */\n insetBlockStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset-inline) */\n insetInline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset-inline-end) */\n insetInlineEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/inset-inline-start) */\n insetInlineStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/isolation) */\n isolation: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/justify-content) */\n justifyContent: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/justify-items) */\n justifyItems: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/justify-self) */\n justifySelf: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/left) */\n left: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/length) */\n readonly length: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/letter-spacing) */\n letterSpacing: string;\n lightingColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/line-break) */\n lineBreak: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/line-height) */\n lineHeight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/list-style) */\n listStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/list-style-image) */\n listStyleImage: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/list-style-position) */\n listStylePosition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/list-style-type) */\n listStyleType: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin) */\n margin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-block) */\n marginBlock: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-block-end) */\n marginBlockEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-block-start) */\n marginBlockStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-bottom) */\n marginBottom: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-inline) */\n marginInline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-inline-end) */\n marginInlineEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-inline-start) */\n marginInlineStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-left) */\n marginLeft: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-right) */\n marginRight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/margin-top) */\n marginTop: string;\n marker: string;\n markerEnd: string;\n markerMid: string;\n markerStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask) */\n mask: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-clip) */\n maskClip: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-composite) */\n maskComposite: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-image) */\n maskImage: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-mode) */\n maskMode: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-origin) */\n maskOrigin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-position) */\n maskPosition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-repeat) */\n maskRepeat: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-size) */\n maskSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-type) */\n maskType: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/math-depth) */\n mathDepth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/math-style) */\n mathStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/max-block-size) */\n maxBlockSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/max-height) */\n maxHeight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/max-inline-size) */\n maxInlineSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/max-width) */\n maxWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/min-block-size) */\n minBlockSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/min-height) */\n minHeight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/min-inline-size) */\n minInlineSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/min-width) */\n minWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mix-blend-mode) */\n mixBlendMode: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/object-fit) */\n objectFit: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/object-position) */\n objectPosition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/offset) */\n offset: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/offset-anchor) */\n offsetAnchor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/offset-distance) */\n offsetDistance: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/offset-path) */\n offsetPath: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/offset-position) */\n offsetPosition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/offset-rotate) */\n offsetRotate: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/opacity) */\n opacity: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/order) */\n order: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/orphans) */\n orphans: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/outline) */\n outline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/outline-color) */\n outlineColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/outline-offset) */\n outlineOffset: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/outline-style) */\n outlineStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/outline-width) */\n outlineWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow) */\n overflow: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-anchor) */\n overflowAnchor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-clip-margin) */\n overflowClipMargin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-wrap) */\n overflowWrap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-x) */\n overflowX: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overflow-y) */\n overflowY: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior) */\n overscrollBehavior: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-block) */\n overscrollBehaviorBlock: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-inline) */\n overscrollBehaviorInline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-x) */\n overscrollBehaviorX: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-y) */\n overscrollBehaviorY: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding) */\n padding: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-block) */\n paddingBlock: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-block-end) */\n paddingBlockEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-block-start) */\n paddingBlockStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-bottom) */\n paddingBottom: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-inline) */\n paddingInline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-inline-end) */\n paddingInlineEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-inline-start) */\n paddingInlineStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-left) */\n paddingLeft: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-right) */\n paddingRight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/padding-top) */\n paddingTop: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/page) */\n page: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/page-break-after) */\n pageBreakAfter: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/page-break-before) */\n pageBreakBefore: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/page-break-inside) */\n pageBreakInside: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/paint-order) */\n paintOrder: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/parentRule) */\n readonly parentRule: CSSRule | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/perspective) */\n perspective: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/perspective-origin) */\n perspectiveOrigin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/place-content) */\n placeContent: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/place-items) */\n placeItems: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/place-self) */\n placeSelf: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/pointer-events) */\n pointerEvents: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/position) */\n position: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/print-color-adjust) */\n printColorAdjust: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/quotes) */\n quotes: string;\n r: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/resize) */\n resize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/right) */\n right: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/rotate) */\n rotate: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/row-gap) */\n rowGap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/ruby-position) */\n rubyPosition: string;\n rx: string;\n ry: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scale) */\n scale: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-behavior) */\n scrollBehavior: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin) */\n scrollMargin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block) */\n scrollMarginBlock: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block-end) */\n scrollMarginBlockEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block-start) */\n scrollMarginBlockStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-bottom) */\n scrollMarginBottom: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline) */\n scrollMarginInline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline-end) */\n scrollMarginInlineEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline-start) */\n scrollMarginInlineStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-left) */\n scrollMarginLeft: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-right) */\n scrollMarginRight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-margin-top) */\n scrollMarginTop: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding) */\n scrollPadding: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block) */\n scrollPaddingBlock: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block-end) */\n scrollPaddingBlockEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block-start) */\n scrollPaddingBlockStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-bottom) */\n scrollPaddingBottom: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline) */\n scrollPaddingInline: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline-end) */\n scrollPaddingInlineEnd: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline-start) */\n scrollPaddingInlineStart: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-left) */\n scrollPaddingLeft: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-right) */\n scrollPaddingRight: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-padding-top) */\n scrollPaddingTop: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-snap-align) */\n scrollSnapAlign: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-snap-stop) */\n scrollSnapStop: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scroll-snap-type) */\n scrollSnapType: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scrollbar-color) */\n scrollbarColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scrollbar-gutter) */\n scrollbarGutter: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/scrollbar-width) */\n scrollbarWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/shape-image-threshold) */\n shapeImageThreshold: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/shape-margin) */\n shapeMargin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/shape-outside) */\n shapeOutside: string;\n shapeRendering: string;\n stopColor: string;\n stopOpacity: string;\n stroke: string;\n strokeDasharray: string;\n strokeDashoffset: string;\n strokeLinecap: string;\n strokeLinejoin: string;\n strokeMiterlimit: string;\n strokeOpacity: string;\n strokeWidth: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/tab-size) */\n tabSize: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/table-layout) */\n tableLayout: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-align) */\n textAlign: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-align-last) */\n textAlignLast: string;\n textAnchor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-combine-upright) */\n textCombineUpright: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration) */\n textDecoration: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration-color) */\n textDecorationColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration-line) */\n textDecorationLine: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration-skip-ink) */\n textDecorationSkipInk: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration-style) */\n textDecorationStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-decoration-thickness) */\n textDecorationThickness: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-emphasis) */\n textEmphasis: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-emphasis-color) */\n textEmphasisColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-emphasis-position) */\n textEmphasisPosition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-emphasis-style) */\n textEmphasisStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-indent) */\n textIndent: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-orientation) */\n textOrientation: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-overflow) */\n textOverflow: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-rendering) */\n textRendering: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-shadow) */\n textShadow: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-transform) */\n textTransform: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-underline-offset) */\n textUnderlineOffset: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-underline-position) */\n textUnderlinePosition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-wrap) */\n textWrap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/top) */\n top: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/touch-action) */\n touchAction: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform) */\n transform: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform-box) */\n transformBox: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform-origin) */\n transformOrigin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform-style) */\n transformStyle: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition) */\n transition: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-delay) */\n transitionDelay: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-duration) */\n transitionDuration: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-property) */\n transitionProperty: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-timing-function) */\n transitionTimingFunction: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/translate) */\n translate: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/unicode-bidi) */\n unicodeBidi: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/user-select) */\n userSelect: string;\n vectorEffect: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/vertical-align) */\n verticalAlign: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/visibility) */\n visibility: string;\n /**\n * @deprecated This is a legacy alias of `alignContent`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/align-content)\n */\n webkitAlignContent: string;\n /**\n * @deprecated This is a legacy alias of `alignItems`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/align-items)\n */\n webkitAlignItems: string;\n /**\n * @deprecated This is a legacy alias of `alignSelf`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/align-self)\n */\n webkitAlignSelf: string;\n /**\n * @deprecated This is a legacy alias of `animation`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation)\n */\n webkitAnimation: string;\n /**\n * @deprecated This is a legacy alias of `animationDelay`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-delay)\n */\n webkitAnimationDelay: string;\n /**\n * @deprecated This is a legacy alias of `animationDirection`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-direction)\n */\n webkitAnimationDirection: string;\n /**\n * @deprecated This is a legacy alias of `animationDuration`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-duration)\n */\n webkitAnimationDuration: string;\n /**\n * @deprecated This is a legacy alias of `animationFillMode`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-fill-mode)\n */\n webkitAnimationFillMode: string;\n /**\n * @deprecated This is a legacy alias of `animationIterationCount`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-iteration-count)\n */\n webkitAnimationIterationCount: string;\n /**\n * @deprecated This is a legacy alias of `animationName`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-name)\n */\n webkitAnimationName: string;\n /**\n * @deprecated This is a legacy alias of `animationPlayState`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-play-state)\n */\n webkitAnimationPlayState: string;\n /**\n * @deprecated This is a legacy alias of `animationTimingFunction`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/animation-timing-function)\n */\n webkitAnimationTimingFunction: string;\n /**\n * @deprecated This is a legacy alias of `appearance`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/appearance)\n */\n webkitAppearance: string;\n /**\n * @deprecated This is a legacy alias of `backfaceVisibility`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/backface-visibility)\n */\n webkitBackfaceVisibility: string;\n /**\n * @deprecated This is a legacy alias of `backgroundClip`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-clip)\n */\n webkitBackgroundClip: string;\n /**\n * @deprecated This is a legacy alias of `backgroundOrigin`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-origin)\n */\n webkitBackgroundOrigin: string;\n /**\n * @deprecated This is a legacy alias of `backgroundSize`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/background-size)\n */\n webkitBackgroundSize: string;\n /**\n * @deprecated This is a legacy alias of `borderBottomLeftRadius`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-left-radius)\n */\n webkitBorderBottomLeftRadius: string;\n /**\n * @deprecated This is a legacy alias of `borderBottomRightRadius`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-bottom-right-radius)\n */\n webkitBorderBottomRightRadius: string;\n /**\n * @deprecated This is a legacy alias of `borderRadius`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-radius)\n */\n webkitBorderRadius: string;\n /**\n * @deprecated This is a legacy alias of `borderTopLeftRadius`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-left-radius)\n */\n webkitBorderTopLeftRadius: string;\n /**\n * @deprecated This is a legacy alias of `borderTopRightRadius`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/border-top-right-radius)\n */\n webkitBorderTopRightRadius: string;\n /**\n * @deprecated This is a legacy alias of `boxAlign`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-align)\n */\n webkitBoxAlign: string;\n /**\n * @deprecated This is a legacy alias of `boxFlex`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-flex)\n */\n webkitBoxFlex: string;\n /**\n * @deprecated This is a legacy alias of `boxOrdinalGroup`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-ordinal-group)\n */\n webkitBoxOrdinalGroup: string;\n /**\n * @deprecated This is a legacy alias of `boxOrient`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-orient)\n */\n webkitBoxOrient: string;\n /**\n * @deprecated This is a legacy alias of `boxPack`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-pack)\n */\n webkitBoxPack: string;\n /**\n * @deprecated This is a legacy alias of `boxShadow`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-shadow)\n */\n webkitBoxShadow: string;\n /**\n * @deprecated This is a legacy alias of `boxSizing`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/box-sizing)\n */\n webkitBoxSizing: string;\n /**\n * @deprecated This is a legacy alias of `filter`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/filter)\n */\n webkitFilter: string;\n /**\n * @deprecated This is a legacy alias of `flex`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex)\n */\n webkitFlex: string;\n /**\n * @deprecated This is a legacy alias of `flexBasis`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-basis)\n */\n webkitFlexBasis: string;\n /**\n * @deprecated This is a legacy alias of `flexDirection`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-direction)\n */\n webkitFlexDirection: string;\n /**\n * @deprecated This is a legacy alias of `flexFlow`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-flow)\n */\n webkitFlexFlow: string;\n /**\n * @deprecated This is a legacy alias of `flexGrow`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-grow)\n */\n webkitFlexGrow: string;\n /**\n * @deprecated This is a legacy alias of `flexShrink`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-shrink)\n */\n webkitFlexShrink: string;\n /**\n * @deprecated This is a legacy alias of `flexWrap`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/flex-wrap)\n */\n webkitFlexWrap: string;\n /**\n * @deprecated This is a legacy alias of `justifyContent`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/justify-content)\n */\n webkitJustifyContent: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/-webkit-line-clamp) */\n webkitLineClamp: string;\n /**\n * @deprecated This is a legacy alias of `mask`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask)\n */\n webkitMask: string;\n /**\n * @deprecated This is a legacy alias of `maskBorder`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border)\n */\n webkitMaskBoxImage: string;\n /**\n * @deprecated This is a legacy alias of `maskBorderOutset`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border-outset)\n */\n webkitMaskBoxImageOutset: string;\n /**\n * @deprecated This is a legacy alias of `maskBorderRepeat`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border-repeat)\n */\n webkitMaskBoxImageRepeat: string;\n /**\n * @deprecated This is a legacy alias of `maskBorderSlice`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border-slice)\n */\n webkitMaskBoxImageSlice: string;\n /**\n * @deprecated This is a legacy alias of `maskBorderSource`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border-source)\n */\n webkitMaskBoxImageSource: string;\n /**\n * @deprecated This is a legacy alias of `maskBorderWidth`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-border-width)\n */\n webkitMaskBoxImageWidth: string;\n /**\n * @deprecated This is a legacy alias of `maskClip`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-clip)\n */\n webkitMaskClip: string;\n /**\n * @deprecated This is a legacy alias of `maskComposite`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-composite)\n */\n webkitMaskComposite: string;\n /**\n * @deprecated This is a legacy alias of `maskImage`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-image)\n */\n webkitMaskImage: string;\n /**\n * @deprecated This is a legacy alias of `maskOrigin`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-origin)\n */\n webkitMaskOrigin: string;\n /**\n * @deprecated This is a legacy alias of `maskPosition`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-position)\n */\n webkitMaskPosition: string;\n /**\n * @deprecated This is a legacy alias of `maskRepeat`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-repeat)\n */\n webkitMaskRepeat: string;\n /**\n * @deprecated This is a legacy alias of `maskSize`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/mask-size)\n */\n webkitMaskSize: string;\n /**\n * @deprecated This is a legacy alias of `order`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/order)\n */\n webkitOrder: string;\n /**\n * @deprecated This is a legacy alias of `perspective`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/perspective)\n */\n webkitPerspective: string;\n /**\n * @deprecated This is a legacy alias of `perspectiveOrigin`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/perspective-origin)\n */\n webkitPerspectiveOrigin: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/-webkit-text-fill-color) */\n webkitTextFillColor: string;\n /**\n * @deprecated This is a legacy alias of `textSizeAdjust`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/text-size-adjust)\n */\n webkitTextSizeAdjust: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke) */\n webkitTextStroke: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke-color) */\n webkitTextStrokeColor: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke-width) */\n webkitTextStrokeWidth: string;\n /**\n * @deprecated This is a legacy alias of `transform`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform)\n */\n webkitTransform: string;\n /**\n * @deprecated This is a legacy alias of `transformOrigin`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform-origin)\n */\n webkitTransformOrigin: string;\n /**\n * @deprecated This is a legacy alias of `transformStyle`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transform-style)\n */\n webkitTransformStyle: string;\n /**\n * @deprecated This is a legacy alias of `transition`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition)\n */\n webkitTransition: string;\n /**\n * @deprecated This is a legacy alias of `transitionDelay`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-delay)\n */\n webkitTransitionDelay: string;\n /**\n * @deprecated This is a legacy alias of `transitionDuration`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-duration)\n */\n webkitTransitionDuration: string;\n /**\n * @deprecated This is a legacy alias of `transitionProperty`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-property)\n */\n webkitTransitionProperty: string;\n /**\n * @deprecated This is a legacy alias of `transitionTimingFunction`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/transition-timing-function)\n */\n webkitTransitionTimingFunction: string;\n /**\n * @deprecated This is a legacy alias of `userSelect`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/user-select)\n */\n webkitUserSelect: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/white-space) */\n whiteSpace: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/widows) */\n widows: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/width) */\n width: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/will-change) */\n willChange: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/word-break) */\n wordBreak: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/word-spacing) */\n wordSpacing: string;\n /** @deprecated */\n wordWrap: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/writing-mode) */\n writingMode: string;\n x: string;\n y: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/CSS/z-index) */\n zIndex: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/getPropertyPriority) */\n getPropertyPriority(property: string): string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/getPropertyValue) */\n getPropertyValue(property: string): string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/item) */\n item(index: number): string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/removeProperty) */\n removeProperty(property: string): string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleDeclaration/setProperty) */\n setProperty(property: string, value: string | null, priority?: string): void;\n [index: number]: string;\n}\n\ndeclare var CSSStyleDeclaration: {\n prototype: CSSStyleDeclaration;\n new(): CSSStyleDeclaration;\n};\n\n/**\n * CSSStyleRule represents a single CSS style rule. It implements the CSSRule interface with a type value of 1 (CSSRule.STYLE_RULE).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleRule)\n */\ninterface CSSStyleRule extends CSSGroupingRule {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleRule/selectorText) */\n selectorText: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleRule/style) */\n readonly style: CSSStyleDeclaration;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleRule/styleMap) */\n readonly styleMap: StylePropertyMap;\n}\n\ndeclare var CSSStyleRule: {\n prototype: CSSStyleRule;\n new(): CSSStyleRule;\n};\n\n/**\n * A single CSS style sheet. It inherits properties and methods from its parent, StyleSheet.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet)\n */\ninterface CSSStyleSheet extends StyleSheet {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/cssRules) */\n readonly cssRules: CSSRuleList;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/ownerRule) */\n readonly ownerRule: CSSRule | null;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/rules)\n */\n readonly rules: CSSRuleList;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/addRule)\n */\n addRule(selector?: string, style?: string, index?: number): number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/deleteRule) */\n deleteRule(index: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/insertRule) */\n insertRule(rule: string, index?: number): number;\n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/removeRule)\n */\n removeRule(index?: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/replace) */\n replace(text: string): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleSheet/replaceSync) */\n replaceSync(text: string): void;\n}\n\ndeclare var CSSStyleSheet: {\n prototype: CSSStyleSheet;\n new(options?: CSSStyleSheetInit): CSSStyleSheet;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleValue) */\ninterface CSSStyleValue {\n toString(): string;\n}\n\ndeclare var CSSStyleValue: {\n prototype: CSSStyleValue;\n new(): CSSStyleValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleValue/parse_static) */\n parse(property: string, cssText: string): CSSStyleValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSStyleValue/parseAll_static) */\n parseAll(property: string, cssText: string): CSSStyleValue[];\n};\n\n/**\n * An object representing a single CSS @supports at-rule. It implements the CSSConditionRule interface, and therefore the CSSRule and CSSGroupingRule interfaces with a type value of 12 (CSSRule.SUPPORTS_RULE).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSSupportsRule)\n */\ninterface CSSSupportsRule extends CSSConditionRule {\n}\n\ndeclare var CSSSupportsRule: {\n prototype: CSSSupportsRule;\n new(): CSSSupportsRule;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformComponent) */\ninterface CSSTransformComponent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformComponent/is2D) */\n is2D: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformComponent/toMatrix) */\n toMatrix(): DOMMatrix;\n toString(): string;\n}\n\ndeclare var CSSTransformComponent: {\n prototype: CSSTransformComponent;\n new(): CSSTransformComponent;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformValue) */\ninterface CSSTransformValue extends CSSStyleValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformValue/is2D) */\n readonly is2D: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformValue/length) */\n readonly length: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransformValue/toMatrix) */\n toMatrix(): DOMMatrix;\n forEach(callbackfn: (value: CSSTransformComponent, key: number, parent: CSSTransformValue) => void, thisArg?: any): void;\n [index: number]: CSSTransformComponent;\n}\n\ndeclare var CSSTransformValue: {\n prototype: CSSTransformValue;\n new(transforms: CSSTransformComponent[]): CSSTransformValue;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransition) */\ninterface CSSTransition extends Animation {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTransition/transitionProperty) */\n readonly transitionProperty: string;\n addEventListener(type: K, listener: (this: CSSTransition, ev: AnimationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: CSSTransition, ev: AnimationEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var CSSTransition: {\n prototype: CSSTransition;\n new(): CSSTransition;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTranslate) */\ninterface CSSTranslate extends CSSTransformComponent {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTranslate/x) */\n x: CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTranslate/y) */\n y: CSSNumericValue;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSTranslate/z) */\n z: CSSNumericValue;\n}\n\ndeclare var CSSTranslate: {\n prototype: CSSTranslate;\n new(x: CSSNumericValue, y: CSSNumericValue, z?: CSSNumericValue): CSSTranslate;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnitValue) */\ninterface CSSUnitValue extends CSSNumericValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnitValue/unit) */\n readonly unit: string;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnitValue/value) */\n value: number;\n}\n\ndeclare var CSSUnitValue: {\n prototype: CSSUnitValue;\n new(value: number, unit: string): CSSUnitValue;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnparsedValue) */\ninterface CSSUnparsedValue extends CSSStyleValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSUnparsedValue/length) */\n readonly length: number;\n forEach(callbackfn: (value: CSSUnparsedSegment, key: number, parent: CSSUnparsedValue) => void, thisArg?: any): void;\n [index: number]: CSSUnparsedSegment;\n}\n\ndeclare var CSSUnparsedValue: {\n prototype: CSSUnparsedValue;\n new(members: CSSUnparsedSegment[]): CSSUnparsedValue;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSVariableReferenceValue) */\ninterface CSSVariableReferenceValue {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSVariableReferenceValue/fallback) */\n readonly fallback: CSSUnparsedValue | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CSSVariableReferenceValue/variable) */\n variable: string;\n}\n\ndeclare var CSSVariableReferenceValue: {\n prototype: CSSVariableReferenceValue;\n new(variable: string, fallback?: CSSUnparsedValue | null): CSSVariableReferenceValue;\n};\n\n/**\n * Provides a storage mechanism for Request / Response object pairs that are cached, for example as part of the ServiceWorker life cycle. Note that the Cache interface is exposed to windowed scopes as well as workers. You don't have to use it in conjunction with service workers, even though it is defined in the service worker spec.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache)\n */\ninterface Cache {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/add) */\n add(request: RequestInfo | URL): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/addAll) */\n addAll(requests: RequestInfo[]): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/delete) */\n delete(request: RequestInfo | URL, options?: CacheQueryOptions): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/keys) */\n keys(request?: RequestInfo | URL, options?: CacheQueryOptions): Promise>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/match) */\n match(request: RequestInfo | URL, options?: CacheQueryOptions): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/matchAll) */\n matchAll(request?: RequestInfo | URL, options?: CacheQueryOptions): Promise>;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Cache/put) */\n put(request: RequestInfo | URL, response: Response): Promise;\n}\n\ndeclare var Cache: {\n prototype: Cache;\n new(): Cache;\n};\n\n/**\n * The storage for Cache objects.\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage)\n */\ninterface CacheStorage {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/delete) */\n delete(cacheName: string): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/has) */\n has(cacheName: string): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/keys) */\n keys(): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/match) */\n match(request: RequestInfo | URL, options?: MultiCacheQueryOptions): Promise;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CacheStorage/open) */\n open(cacheName: string): Promise;\n}\n\ndeclare var CacheStorage: {\n prototype: CacheStorage;\n new(): CacheStorage;\n};\n\n/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasCaptureMediaStreamTrack) */\ninterface CanvasCaptureMediaStreamTrack extends MediaStreamTrack {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasCaptureMediaStreamTrack/canvas) */\n readonly canvas: HTMLCanvasElement;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasCaptureMediaStreamTrack/requestFrame) */\n requestFrame(): void;\n addEventListener(type: K, listener: (this: CanvasCaptureMediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: K, listener: (this: CanvasCaptureMediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\ndeclare var CanvasCaptureMediaStreamTrack: {\n prototype: CanvasCaptureMediaStreamTrack;\n new(): CanvasCaptureMediaStreamTrack;\n};\n\ninterface CanvasCompositing {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/globalAlpha) */\n globalAlpha: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation) */\n globalCompositeOperation: GlobalCompositeOperation;\n}\n\ninterface CanvasDrawImage {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/drawImage) */\n drawImage(image: CanvasImageSource, dx: number, dy: number): void;\n drawImage(image: CanvasImageSource, dx: number, dy: number, dw: number, dh: number): void;\n drawImage(image: CanvasImageSource, sx: number, sy: number, sw: number, sh: number, dx: number, dy: number, dw: number, dh: number): void;\n}\n\ninterface CanvasDrawPath {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/beginPath) */\n beginPath(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/clip) */\n clip(fillRule?: CanvasFillRule): void;\n clip(path: Path2D, fillRule?: CanvasFillRule): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fill) */\n fill(fillRule?: CanvasFillRule): void;\n fill(path: Path2D, fillRule?: CanvasFillRule): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/isPointInPath) */\n isPointInPath(x: number, y: number, fillRule?: CanvasFillRule): boolean;\n isPointInPath(path: Path2D, x: number, y: number, fillRule?: CanvasFillRule): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/isPointInStroke) */\n isPointInStroke(x: number, y: number): boolean;\n isPointInStroke(path: Path2D, x: number, y: number): boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/stroke) */\n stroke(): void;\n stroke(path: Path2D): void;\n}\n\ninterface CanvasFillStrokeStyles {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fillStyle) */\n fillStyle: string | CanvasGradient | CanvasPattern;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/strokeStyle) */\n strokeStyle: string | CanvasGradient | CanvasPattern;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createConicGradient) */\n createConicGradient(startAngle: number, x: number, y: number): CanvasGradient;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createLinearGradient) */\n createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createPattern) */\n createPattern(image: CanvasImageSource, repetition: string | null): CanvasPattern | null;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createRadialGradient) */\n createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient;\n}\n\ninterface CanvasFilters {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/filter) */\n filter: string;\n}\n\n/**\n * An opaque object describing a gradient. It is returned by the methods CanvasRenderingContext2D.createLinearGradient() or CanvasRenderingContext2D.createRadialGradient().\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasGradient)\n */\ninterface CanvasGradient {\n /**\n * Adds a color stop with the given color to the gradient at the given offset. 0.0 is the offset at one end of the gradient, 1.0 is the offset at the other end.\n *\n * Throws an \"IndexSizeError\" DOMException if the offset is out of range. Throws a \"SyntaxError\" DOMException if the color cannot be parsed.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasGradient/addColorStop)\n */\n addColorStop(offset: number, color: string): void;\n}\n\ndeclare var CanvasGradient: {\n prototype: CanvasGradient;\n new(): CanvasGradient;\n};\n\ninterface CanvasImageData {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/createImageData) */\n createImageData(sw: number, sh: number, settings?: ImageDataSettings): ImageData;\n createImageData(imagedata: ImageData): ImageData;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/getImageData) */\n getImageData(sx: number, sy: number, sw: number, sh: number, settings?: ImageDataSettings): ImageData;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/putImageData) */\n putImageData(imagedata: ImageData, dx: number, dy: number): void;\n putImageData(imagedata: ImageData, dx: number, dy: number, dirtyX: number, dirtyY: number, dirtyWidth: number, dirtyHeight: number): void;\n}\n\ninterface CanvasImageSmoothing {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/imageSmoothingEnabled) */\n imageSmoothingEnabled: boolean;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/imageSmoothingQuality) */\n imageSmoothingQuality: ImageSmoothingQuality;\n}\n\ninterface CanvasPath {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/arc) */\n arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/arcTo) */\n arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/bezierCurveTo) */\n bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/closePath) */\n closePath(): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/ellipse) */\n ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineTo) */\n lineTo(x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/moveTo) */\n moveTo(x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/quadraticCurveTo) */\n quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/rect) */\n rect(x: number, y: number, w: number, h: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/roundRect) */\n roundRect(x: number, y: number, w: number, h: number, radii?: number | DOMPointInit | (number | DOMPointInit)[]): void;\n}\n\ninterface CanvasPathDrawingStyles {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineCap) */\n lineCap: CanvasLineCap;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineDashOffset) */\n lineDashOffset: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineJoin) */\n lineJoin: CanvasLineJoin;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/lineWidth) */\n lineWidth: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/miterLimit) */\n miterLimit: number;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/getLineDash) */\n getLineDash(): number[];\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/setLineDash) */\n setLineDash(segments: number[]): void;\n}\n\n/**\n * An opaque object describing a pattern, based on an image, a canvas, or a video, created by the CanvasRenderingContext2D.createPattern() method.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasPattern)\n */\ninterface CanvasPattern {\n /**\n * Sets the transformation matrix that will be used when rendering the pattern during a fill or stroke painting operation.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasPattern/setTransform)\n */\n setTransform(transform?: DOMMatrix2DInit): void;\n}\n\ndeclare var CanvasPattern: {\n prototype: CanvasPattern;\n new(): CanvasPattern;\n};\n\ninterface CanvasRect {\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/clearRect) */\n clearRect(x: number, y: number, w: number, h: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/fillRect) */\n fillRect(x: number, y: number, w: number, h: number): void;\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/strokeRect) */\n strokeRect(x: number, y: number, w: number, h: number): void;\n}\n\n/**\n * The CanvasRenderingContext2D interface, part of the Canvas API, provides the 2D rendering context for the drawing surface of a