From e448f16d0e2a42a25766a61c4c8caefba5022dd5 Mon Sep 17 00:00:00 2001 From: Kagami Sascha Rosylight Date: Sat, 25 Nov 2023 01:21:08 +0100 Subject: [PATCH 1/3] Upgrade dependencies --- deploy/createTypesPackages.js | 12 +- deploy/deployChangedPackages.js | 10 +- deploy/migrate.js | 8 +- deploy/versionChangelog.js | 2 +- package-lock.json | 1457 ++++++++++++++++++++++--------- package.json | 40 +- src/build.ts | 34 +- src/build/bcd.ts | 4 +- src/build/bcd/mapper.ts | 16 +- src/build/bcd/stable.ts | 2 +- src/build/emitter.ts | 220 ++--- src/build/expose.ts | 37 +- src/build/helpers.ts | 22 +- src/build/legacy-namespace.ts | 4 +- src/build/utils/fs.ts | 2 +- src/build/utils/map.ts | 4 +- src/build/utils/record.ts | 6 +- src/build/webref/css.ts | 4 +- src/build/webref/elements.ts | 4 +- src/build/widlprocess.ts | 50 +- src/changelog.ts | 16 +- src/test.ts | 30 +- 22 files changed, 1316 insertions(+), 668 deletions(-) diff --git a/deploy/createTypesPackages.js b/deploy/createTypesPackages.js index 5eb1fcfe9..3e1e6896e 100644 --- a/deploy/createTypesPackages.js +++ b/deploy/createTypesPackages.js @@ -86,7 +86,7 @@ const go = async () => { pkg.files.forEach((fileRef) => { fs.copyFileSync( new URL(fileRef.from, import.meta.url), - new URL(fileRef.to, packagePath) + new URL(fileRef.to, packagePath), ); }); @@ -120,7 +120,7 @@ async function updatePackageJSON(pkg, packagePath) { let version = "0.0.1"; try { const npmResponse = await fetch( - `https://registry.npmjs.org/${packageJSON.name}` + `https://registry.npmjs.org/${packageJSON.name}`, ); /** @type {*} */ const npmPackage = await npmResponse.json(); @@ -143,9 +143,9 @@ async function updatePackageJSON(pkg, packagePath) { fs.writeFileSync( pkgJSONPath, - format(JSON.stringify(packageJSON), { + await format(JSON.stringify(packageJSON), { filepath: fileURLToPath(pkgJSONPath), - }) + }), ); return packageJSON; @@ -167,7 +167,7 @@ function copyREADME(pkg, pkgJSON, writePath) { .replace("{{version}}", pkgJSON.version) .replace( "{{release_href}}", - `https://github.com/microsoft/TypeScript-DOM-lib-generator/releases/tag/${htmlEncodedTag}` + `https://github.com/microsoft/TypeScript-DOM-lib-generator/releases/tag/${htmlEncodedTag}`, ); fs.writeFileSync(writePath, readme); @@ -200,7 +200,7 @@ export function postProcessDTSFiles(pkg, packagePath) { iterateThroughFiles((content) => { return content.replace( "abort(reason?: any): AbortSignal;", - "// abort(reason?: any): AbortSignal; - To be re-added in the future" + "// abort(reason?: any): AbortSignal; - To be re-added in the future", ); }); diff --git a/deploy/deployChangedPackages.js b/deploy/deployChangedPackages.js index 8b5db38b3..1f9943c6f 100644 --- a/deploy/deployChangedPackages.js +++ b/deploy/deployChangedPackages.js @@ -61,7 +61,7 @@ for (const dirName of fs.readdirSync(generatedDir)) { try { const oldFile = await getFileFromUnpkg( - `${pkgJSON.name}@${olderVersion}/${filemap.to}` + `${pkgJSON.name}@${olderVersion}/${filemap.to}`, ); console.log(` - ${file}`); if (oldFile !== generatedDTSContent) @@ -100,13 +100,13 @@ Assuming that this means we need to upload this package.`); await createRelease( `${pkgJSON.name}@${pkgJSON.version}`, - releaseNotes.join("\n\n") + releaseNotes.join("\n\n"), ); } } else { console.log( "Wanting to run: 'npm publish --access public' in " + - fileURLToPath(packageDir) + fileURLToPath(packageDir), ); } @@ -148,7 +148,7 @@ async function createRelease(tag, body) { }); } catch (error) { console.error( - "Creating the GitHub release failed, this is likely due to re-running the deploy." + "Creating the GitHub release failed, this is likely due to re-running the deploy.", ); } } @@ -157,7 +157,7 @@ function verify() { const authToken = process.env.GITHUB_TOKEN || process.env.GITHUB_API_TOKEN; if (!authToken) { throw new Error( - "There isn't an ENV var set up for creating a GitHub release, expected GITHUB_TOKEN." + "There isn't an ENV var set up for creating a GitHub release, expected GITHUB_TOKEN.", ); } } diff --git a/deploy/migrate.js b/deploy/migrate.js index a3b0d1da7..f15ac8dd8 100644 --- a/deploy/migrate.js +++ b/deploy/migrate.js @@ -14,19 +14,19 @@ const tscWD = maybeTSWorkingDir.find((wd) => existsSync(wd)); if (!tscWD) throw new Error( - "Could not find a TypeScript clone to put the generated files in." + "Could not find a TypeScript clone to put the generated files in.", ); const generatedFiles = readdirSync("generated"); const filesToSend = generatedFiles.filter( - (file) => file.includes("dom.") || file.includes("webworker.") + (file) => file.includes("dom.") || file.includes("webworker."), ); const generatedDir = new URL("../generated/", import.meta.url); postProcessDTSFiles( /** @type {any} */ ({ files: filesToSend.map((f) => ({ to: f })) }), - generatedDir + generatedDir, ); filesToSend.forEach((file) => { @@ -38,5 +38,5 @@ filesToSend.forEach((file) => { console.log( `Moved ${filesToSend .map((f) => f.replace(".generated", "")) - .join(", ")} to '${tscWD}/src/lib'.` + .join(", ")} to '${tscWD}/src/lib'.`, ); diff --git a/deploy/versionChangelog.js b/deploy/versionChangelog.js index 97cf6be3b..fc120d82d 100644 --- a/deploy/versionChangelog.js +++ b/deploy/versionChangelog.js @@ -9,7 +9,7 @@ import { basename } from "path"; const [name, before, to] = process.argv.slice(2); if (!name || !before || !to) { throw new Error( - "Expected three arguments: package name, version before, version to" + "Expected three arguments: package name, version before, version to", ); } diff --git a/package-lock.json b/package-lock.json index edde11f08..52e1be489 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,29 +9,29 @@ "version": "0.0.1", "license": "Apache-2.0", "devDependencies": { - "@mdn/browser-compat-data": "^5.2.52", - "@octokit/rest": "^19.0.7", - "@types/node": "^18.15.13", - "@types/prettier": "^2.7.2", - "@types/webidl2": "^23.13.6", - "@typescript-eslint/eslint-plugin": "^5.59.0", - "@typescript-eslint/parser": "^5.59.0", - "@webref/css": "^6.5.2", - "@webref/elements": "^2.2.1", - "@webref/idl": "^3.33.1", - "bcd-idl-mapper": "^2.2.2", - "cpx2": "^4.2.3", - "danger": "^11.2.6", - "eslint": "^8.39.0", - "eslint-config-prettier": "^8.8.0", - "eslint-plugin-prettier": "^4.2.1", + "@mdn/browser-compat-data": "^5.4.0", + "@octokit/rest": "^20.0.2", + "@types/node": "^20.10.0", + "@types/prettier": "^2.7.3", + "@types/webidl2": "^24.4.3", + "@typescript-eslint/eslint-plugin": "^6.12.0", + "@typescript-eslint/parser": "^6.12.0", + "@webref/css": "^6.9.1", + "@webref/elements": "^2.2.2", + "@webref/idl": "^3.41.1", + "bcd-idl-mapper": "^2.3.0", + "cpx2": "^6.0.1", + "danger": "^11.3.0", + "eslint": "^8.54.0", + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-prettier": "^5.0.1", "jsonc-parser": "^3.2.0", - "node-fetch": "^3.3.1", - "prettier": "^2.8.7", + "node-fetch": "^3.3.2", + "prettier": "^3.1.0", "print-diff": "^2.0.0", "styleless-innertext": "^1.1.5", - "typescript": "^5.0.4", - "webidl2": "^24.2.2" + "typescript": "^5.3.2", + "webidl2": "^24.4.1" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -224,6 +224,50 @@ "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", "dev": true }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/@mdn/browser-compat-data": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.4.0.tgz", @@ -270,7 +314,6 @@ "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", "dev": true, - "peer": true, "engines": { "node": ">= 18" } @@ -280,7 +323,6 @@ "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.0.0.tgz", "integrity": "sha512-YbAtMWIrbZ9FCXbLwT9wWB8TyLjq9mxpKdgB3dUNxQcIVTf9hJ70gRPwAcqGZdY6WdJPZ0I7jLaaNDCiloGN2A==", "dev": true, - "peer": true, "dependencies": { "@octokit/auth-token": "^4.0.0", "@octokit/graphql": "^7.0.0", @@ -299,7 +341,6 @@ "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.0.tgz", "integrity": "sha512-szrQhiqJ88gghWY2Htt8MqUDO6++E/EIXqJ2ZEp5ma3uGS46o7LZAzSLt49myB7rT+Hfw5Y6gO3LmOxGzHijAQ==", "dev": true, - "peer": true, "dependencies": { "@octokit/types": "^11.0.0", "is-plain-object": "^5.0.0", @@ -314,7 +355,6 @@ "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.0.1.tgz", "integrity": "sha512-T5S3oZ1JOE58gom6MIcrgwZXzTaxRnxBso58xhozxHpOqSTgDS6YNeEUvZ/kRvXgPrRz/KHnZhtb7jUMRi9E6w==", "dev": true, - "peer": true, "dependencies": { "@octokit/request": "^8.0.1", "@octokit/types": "^11.0.0", @@ -331,28 +371,33 @@ "dev": true }, "node_modules/@octokit/plugin-paginate-rest": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz", - "integrity": "sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==", + "version": "9.1.4", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.1.4.tgz", + "integrity": "sha512-MvZx4WvfhBnt7PtH5XE7HORsO7bBk4er1FgRIUr1qJ89NR2I6bWjGyKsxk8z42FPQ34hFQm0Baanh4gzdZR4gQ==", "dev": true, "dependencies": { - "@octokit/tsconfig": "^1.0.2", - "@octokit/types": "^9.2.3" + "@octokit/types": "^12.3.0" }, "engines": { - "node": ">= 14" + "node": ">= 18" }, "peerDependencies": { - "@octokit/core": ">=4" + "@octokit/core": ">=5" } }, + "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types": { + "version": "19.0.2", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-19.0.2.tgz", + "integrity": "sha512-8li32fUDUeml/ACRp/njCWTsk5t17cfTM1jp9n08pBrqs5cDFJubtjsSnuz56r5Tad6jdEPJld7LxNp9dNcyjQ==", + "dev": true + }, "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", - "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.3.0.tgz", + "integrity": "sha512-nJ8X2HRr234q3w/FcovDlA+ttUU4m1eJAourvfUUtwAWeqL8AsyRqfnLvVnYn3NFbUnsmzQCzLNdFerPwdmcDQ==", "dev": true, "dependencies": { - "@octokit/openapi-types": "^18.0.0" + "@octokit/openapi-types": "^19.0.2" } }, "node_modules/@octokit/plugin-request-log": { @@ -365,27 +410,33 @@ } }, "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.2.3.tgz", - "integrity": "sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA==", + "version": "10.1.5", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.1.5.tgz", + "integrity": "sha512-LMEdsMV8TTMjMTqVoqMzV95XTbv0ZsWxCxQtjAunQOCdwoDH4BVF/Ke5JMSZEVCWGI2kzxnUNbFnK/MxwV7NjA==", "dev": true, "dependencies": { - "@octokit/types": "^10.0.0" + "@octokit/types": "^12.3.0" }, "engines": { - "node": ">= 14" + "node": ">= 18" }, "peerDependencies": { - "@octokit/core": ">=3" + "@octokit/core": ">=5" } }, + "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types": { + "version": "19.0.2", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-19.0.2.tgz", + "integrity": "sha512-8li32fUDUeml/ACRp/njCWTsk5t17cfTM1jp9n08pBrqs5cDFJubtjsSnuz56r5Tad6jdEPJld7LxNp9dNcyjQ==", + "dev": true + }, "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-10.0.0.tgz", - "integrity": "sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==", + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.3.0.tgz", + "integrity": "sha512-nJ8X2HRr234q3w/FcovDlA+ttUU4m1eJAourvfUUtwAWeqL8AsyRqfnLvVnYn3NFbUnsmzQCzLNdFerPwdmcDQ==", "dev": true, "dependencies": { - "@octokit/openapi-types": "^18.0.0" + "@octokit/openapi-types": "^19.0.2" } }, "node_modules/@octokit/request": { @@ -393,7 +444,6 @@ "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.1.0.tgz", "integrity": "sha512-0gg/NwewU0iXctYBale0VVcCPqOtoW5lsog8cNBJgzV/CyTHa2gicUBOlNnzOk6pJkuwXI34qkq+uRm40PmD4A==", "dev": true, - "peer": true, "dependencies": { "@octokit/endpoint": "^9.0.0", "@octokit/request-error": "^5.0.0", @@ -410,7 +460,6 @@ "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.0.0.tgz", "integrity": "sha512-1ue0DH0Lif5iEqT52+Rf/hf0RmGO9NWFjrzmrkArpG9trFfDM/efx00BJHdLGuro4BR/gECxCU2Twf5OKrRFsQ==", "dev": true, - "peer": true, "dependencies": { "@octokit/types": "^11.0.0", "deprecation": "^2.0.0", @@ -421,149 +470,69 @@ } }, "node_modules/@octokit/rest": { - "version": "19.0.13", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.13.tgz", - "integrity": "sha512-/EzVox5V9gYGdbAI+ovYj3nXQT1TtTHRT+0eZPcuC05UFSWO3mdO9UY1C0i2eLF9Un1ONJkAk+IEtYGAC+TahA==", - "dev": true, - "dependencies": { - "@octokit/core": "^4.2.1", - "@octokit/plugin-paginate-rest": "^6.1.2", - "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^7.1.2" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/rest/node_modules/@octokit/auth-token": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.4.tgz", - "integrity": "sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==", - "dev": true, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/rest/node_modules/@octokit/core": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.4.tgz", - "integrity": "sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ==", + "version": "20.0.2", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-20.0.2.tgz", + "integrity": "sha512-Ux8NDgEraQ/DMAU1PlAohyfBBXDwhnX2j33Z1nJNziqAfHi70PuxkFYIcIt8aIAxtRE7KVuKp8lSR8pA0J5iOQ==", "dev": true, "dependencies": { - "@octokit/auth-token": "^3.0.0", - "@octokit/graphql": "^5.0.0", - "@octokit/request": "^6.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^9.0.0", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" + "@octokit/core": "^5.0.0", + "@octokit/plugin-paginate-rest": "^9.0.0", + "@octokit/plugin-request-log": "^4.0.0", + "@octokit/plugin-rest-endpoint-methods": "^10.0.0" }, "engines": { - "node": ">= 14" + "node": ">= 18" } }, - "node_modules/@octokit/rest/node_modules/@octokit/endpoint": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.6.tgz", - "integrity": "sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==", + "node_modules/@octokit/rest/node_modules/@octokit/plugin-request-log": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-4.0.0.tgz", + "integrity": "sha512-2uJI1COtYCq8Z4yNSnM231TgH50bRkheQ9+aH8TnZanB6QilOnx8RMD2qsnamSOXtDj0ilxvevf5fGsBhBBzKA==", "dev": true, - "dependencies": { - "@octokit/types": "^9.0.0", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" - }, "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/rest/node_modules/@octokit/graphql": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.6.tgz", - "integrity": "sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw==", - "dev": true, - "dependencies": { - "@octokit/request": "^6.0.0", - "@octokit/types": "^9.0.0", - "universal-user-agent": "^6.0.0" + "node": ">= 18" }, - "engines": { - "node": ">= 14" + "peerDependencies": { + "@octokit/core": ">=5" } }, - "node_modules/@octokit/rest/node_modules/@octokit/request": { - "version": "6.2.8", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.8.tgz", - "integrity": "sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==", + "node_modules/@octokit/types": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-11.1.0.tgz", + "integrity": "sha512-Fz0+7GyLm/bHt8fwEqgvRBWwIV1S6wRRyq+V6exRKLVWaKGsuy6H9QFYeBVDV7rK6fO3XwHgQOPxv+cLj2zpXQ==", "dev": true, "dependencies": { - "@octokit/endpoint": "^7.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^9.0.0", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 14" + "@octokit/openapi-types": "^18.0.0" } }, - "node_modules/@octokit/rest/node_modules/@octokit/request-error": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", - "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, - "dependencies": { - "@octokit/types": "^9.0.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" - }, + "optional": true, "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/rest/node_modules/@octokit/types": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", - "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", - "dev": true, - "dependencies": { - "@octokit/openapi-types": "^18.0.0" + "node": ">=14" } }, - "node_modules/@octokit/rest/node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "node_modules/@pkgr/utils": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz", + "integrity": "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==", "dev": true, "dependencies": { - "whatwg-url": "^5.0.0" + "cross-spawn": "^7.0.3", + "fast-glob": "^3.3.0", + "is-glob": "^4.0.3", + "open": "^9.1.0", + "picocolors": "^1.0.0", + "tslib": "^2.6.0" }, "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/@octokit/tsconfig": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@octokit/tsconfig/-/tsconfig-1.0.2.tgz", - "integrity": "sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA==", - "dev": true - }, - "node_modules/@octokit/types": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-11.1.0.tgz", - "integrity": "sha512-Fz0+7GyLm/bHt8fwEqgvRBWwIV1S6wRRyq+V6exRKLVWaKGsuy6H9QFYeBVDV7rK6fO3XwHgQOPxv+cLj2zpXQ==", - "dev": true, - "peer": true, - "dependencies": { - "@octokit/openapi-types": "^18.0.0" + "funding": { + "url": "https://opencollective.com/unts" } }, "node_modules/@sindresorhus/is": { @@ -633,9 +602,9 @@ } }, "node_modules/@types/node": { - "version": "18.18.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.13.tgz", - "integrity": "sha512-vXYZGRrSCreZmq1rEjMRLXJhiy8MrIeVasx+PCVlP414N7CJLHnMf+juVvjdprHyH+XRy3zKZLHeNueOpJCn0g==", + "version": "20.10.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.0.tgz", + "integrity": "sha512-D0WfRmU9TQ8I9PFx9Yc+EBHw+vSpIub4IDvQivcp26PtPrdMGAq5SDcpXEo/epqa/DXotVpekHiLNTg3iaKXBQ==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -663,38 +632,39 @@ "dev": true }, "node_modules/@types/webidl2": { - "version": "23.13.6", - "resolved": "https://registry.npmjs.org/@types/webidl2/-/webidl2-23.13.6.tgz", - "integrity": "sha512-sPMaZm2M7ZBaVnajY1WFszcl+6CR/daMt77dD8PpMH1wRKinRMDV40U55VmObJ58Oehu7K2JxmSonkm8BlbfxA==", + "version": "24.4.3", + "resolved": "https://registry.npmjs.org/@types/webidl2/-/webidl2-24.4.3.tgz", + "integrity": "sha512-Rn7VaRM3TmzA3nPgwSOqC8MGzzY2W8J7f0IPEf2g5Ga0e6jCsuLRHF+O0gywp3gh37IE/quCWCbNDTwAdKeFKw==", "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.12.0.tgz", + "integrity": "sha512-XOpZ3IyJUIV1b15M7HVOpgQxPPF7lGXgsfcEIu3yDxFPaf/xZKt7s9QO/pbk7vpWQyVulpJbu4E5LwpZiQo4kA==", "dev": true, "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.12.0", + "@typescript-eslint/type-utils": "6.12.0", + "@typescript-eslint/utils": "6.12.0", + "@typescript-eslint/visitor-keys": "6.12.0", "debug": "^4.3.4", "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -703,25 +673,26 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.12.0.tgz", + "integrity": "sha512-s8/jNFPKPNRmXEnNXfuo1gemBdVmpQsK1pcu+QIvuNJuhFzGrpD7WjOcvDc/+uEdfzSYpNu7U/+MmbScjoQ6vg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/scope-manager": "6.12.0", + "@typescript-eslint/types": "6.12.0", + "@typescript-eslint/typescript-estree": "6.12.0", + "@typescript-eslint/visitor-keys": "6.12.0", "debug": "^4.3.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -730,16 +701,16 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.12.0.tgz", + "integrity": "sha512-5gUvjg+XdSj8pcetdL9eXJzQNTl3RD7LgUiYTl8Aabdi8hFkaGSYnaS6BLc0BGNaDH+tVzVwmKtWvu0jLgWVbw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" + "@typescript-eslint/types": "6.12.0", + "@typescript-eslint/visitor-keys": "6.12.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -747,25 +718,25 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.12.0.tgz", + "integrity": "sha512-WWmRXxhm1X8Wlquj+MhsAG4dU/Blvf1xDgGaYCzfvStP2NwPQh6KBvCDbiOEvaE0filhranjIlK/2fSTVwtBng==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", + "@typescript-eslint/typescript-estree": "6.12.0", + "@typescript-eslint/utils": "6.12.0", "debug": "^4.3.4", - "tsutils": "^3.21.0" + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "*" + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -774,12 +745,12 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.12.0.tgz", + "integrity": "sha512-MA16p/+WxM5JG/F3RTpRIcuOghWO30//VEOvzubM8zuOOBYXsP+IfjoCXXiIfy2Ta8FRh9+IO9QLlaFQUU+10Q==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -787,21 +758,21 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.12.0.tgz", + "integrity": "sha512-vw9E2P9+3UUWzhgjyyVczLWxZ3GuQNT7QpnIY3o5OMeLO/c8oHljGc8ZpryBMIyympiAAaKgw9e5Hl9dCWFOYw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", + "@typescript-eslint/types": "6.12.0", + "@typescript-eslint/visitor-keys": "6.12.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -814,64 +785,41 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.12.0.tgz", + "integrity": "sha512-LywPm8h3tGEbgfyjYnu3dauZ0U7R60m+miXgKcZS8c7QALO9uWJdvNoP+duKTk2XMWc7/Q3d/QiCuLN9X6SWyQ==", "dev": true, "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.12.0", + "@typescript-eslint/types": "6.12.0", + "@typescript-eslint/typescript-estree": "6.12.0", + "semver": "^7.5.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" + "eslint": "^7.0.0 || ^8.0.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.12.0.tgz", + "integrity": "sha512-rg3BizTZHF1k3ipn8gfrzDXXSFKyOEB5zxYXInQ6z0hUvmQlhaZQzK+YmHmNViMA9HzW5Q9+bPPt90bU6GQwyw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" + "@typescript-eslint/types": "6.12.0", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -941,19 +889,6 @@ "node": ">= 6.0.0" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -1046,6 +981,27 @@ "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", "dev": true }, + "node_modules/big-integer": { + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "dev": true, + "dependencies": { + "big-integer": "^1.6.44" + }, + "engines": { + "node": ">= 5.10.0" + } + }, "node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -1073,6 +1029,21 @@ "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", "dev": true }, + "node_modules/bundle-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", + "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", + "dev": true, + "dependencies": { + "run-applescript": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/cacheable-lookup": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", @@ -1136,15 +1107,6 @@ "node": ">=4" } }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/clone-response": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", @@ -1217,20 +1179,20 @@ } }, "node_modules/cpx2": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/cpx2/-/cpx2-4.2.3.tgz", - "integrity": "sha512-UM7Iza+OM8FZ2ntTml/mdb3RmSLK5I2DqFqDdMihlGyKZCAAnDP++H973Oyc/2TQpEMtg5JHeRNfewclE330EA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/cpx2/-/cpx2-6.0.1.tgz", + "integrity": "sha512-yzeVueRl+HtxHYmaDnnFdpXkAocqtPD9STTh61m4GpX4B6+oFB/ClsoJLXwjj9lguA0Ry2EpLvWIpRJ/x0bWbw==", "dev": true, "dependencies": { "debounce": "^1.2.0", "debug": "^4.1.1", "duplexer": "^0.1.1", "fs-extra": "^11.1.0", - "glob-gitignore": "^1.0.14", + "glob": "^10.3.10", "glob2base": "0.0.12", - "ignore": "^5.1.8", - "minimatch": "^8.0.2", - "p-map": "^4.0.0", + "ignore": "^5.2.4", + "minimatch": "^9.0.0", + "p-map": "^6.0.0", "resolve": "^1.12.0", "safe-buffer": "^5.2.0", "shell-quote": "^1.8.0", @@ -1240,7 +1202,29 @@ "cpx": "bin/index.js" }, "engines": { - "node": ">=14" + "node": ">=16" + } + }, + "node_modules/cpx2/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/cross-spawn": { @@ -1548,6 +1532,40 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "node_modules/default-browser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", + "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", + "dev": true, + "dependencies": { + "bundle-name": "^3.0.0", + "default-browser-id": "^3.0.0", + "execa": "^7.1.1", + "titleize": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", + "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", + "dev": true, + "dependencies": { + "bplist-parser": "^0.2.0", + "untildify": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/defer-to-connect": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", @@ -1557,6 +1575,18 @@ "node": ">=10" } }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/delay": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", @@ -1623,6 +1653,12 @@ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, "node_modules/ecdsa-sig-formatter": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", @@ -1632,6 +1668,12 @@ "safe-buffer": "^5.0.1" } }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -1706,9 +1748,9 @@ } }, "node_modules/eslint-config-prettier": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", - "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz", + "integrity": "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==", "dev": true, "bin": { "eslint-config-prettier": "bin/cli.js" @@ -1718,21 +1760,29 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", - "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.1.tgz", + "integrity": "sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==", "dev": true, "dependencies": { - "prettier-linter-helpers": "^1.0.0" + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.8.5" }, "engines": { - "node": ">=12.0.0" + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/prettier" }, "peerDependencies": { - "eslint": ">=7.28.0", - "prettier": ">=2.0.0" + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "prettier": ">=3.0.0" }, "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, "eslint-config-prettier": { "optional": true } @@ -1929,25 +1979,60 @@ "node": ">=0.10.0" } }, - "node_modules/expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "node_modules/execa": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", "dev": true, "dependencies": { - "homedir-polyfill": "^1.0.1" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "node_modules/execa/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" }, "engines": { "node": ">=0.10.0" @@ -2117,6 +2202,34 @@ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -2251,23 +2364,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/glob-gitignore": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/glob-gitignore/-/glob-gitignore-1.0.14.tgz", - "integrity": "sha512-YuAEPqL58bOQDqDF2kMv009rIjSAtPs+WPzyGbwRWK+wD0UWQVRoP34Pz6yJ6ivco65C9tZnaIt0I3JCuQ8NZQ==", - "dev": true, - "dependencies": { - "glob": "^7.1.3", - "ignore": "^5.0.5", - "lodash.difference": "^4.5.0", - "lodash.union": "^4.6.0", - "make-array": "^1.0.5", - "util.inherits": "^1.0.3" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -2489,6 +2585,15 @@ "node": ">= 6" } }, + "node_modules/human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "dev": true, + "engines": { + "node": ">=14.18.0" + } + }, "node_modules/hyperlinker": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/hyperlinker/-/hyperlinker-1.0.0.tgz", @@ -2532,15 +2637,6 @@ "node": ">=0.8.19" } }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -2575,6 +2671,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -2593,6 +2704,15 @@ "node": ">=0.10.0" } }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -2605,6 +2725,24 @@ "node": ">=0.10.0" } }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -2632,12 +2770,69 @@ "node": ">=0.10.0" } }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-wsl/node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -2793,12 +2988,6 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "node_modules/lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", - "dev": true - }, "node_modules/lodash.find": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.find/-/lodash.find-4.6.0.tgz", @@ -2841,12 +3030,6 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "node_modules/lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", - "dev": true - }, "node_modules/lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", @@ -2868,15 +3051,6 @@ "node": ">=10" } }, - "node_modules/make-array": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/make-array/-/make-array-1.0.5.tgz", - "integrity": "sha512-sgK2SAzxT19rWU+qxKUcn6PAh/swiIiz2F8C2cZjLc1z4iwYIfdoihqFIDQ8BDzAGtWPYJ6Sr13K1j/DXynDLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/mdn-data": { "version": "2.0.30", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", @@ -3036,6 +3210,12 @@ } } }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -3091,6 +3271,18 @@ "node": ">= 0.6" } }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", @@ -3101,9 +3293,9 @@ } }, "node_modules/minimatch": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", - "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -3124,6 +3316,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -3136,12 +3337,6 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, "node_modules/node-cleanup": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/node-cleanup/-/node-cleanup-2.1.2.tgz", @@ -3197,6 +3392,33 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -3215,6 +3437,39 @@ "wrappy": "1" } }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", + "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", + "dev": true, + "dependencies": { + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/optionator": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", @@ -3293,15 +3548,12 @@ } }, "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-6.0.0.tgz", + "integrity": "sha512-T8BatKGY+k5rU+Q/GTYgrEf2r4xRMevAN5mtXc2aPc4rS1j3s+vWTaO2Wag94neXuCAUAs8cxBL9EeB5EA6diw==", "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, "engines": { - "node": ">=10" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3411,6 +3663,31 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -3420,6 +3697,12 @@ "node": ">=8" } }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", @@ -3448,15 +3731,15 @@ } }, "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz", + "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==", "dev": true, "bin": { - "prettier": "bin-prettier.js" + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=10.13.0" + "node": ">=14" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" @@ -3685,6 +3968,122 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/run-applescript": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", + "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/run-applescript/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/run-applescript/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/run-applescript/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/run-applescript/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -3787,6 +4186,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -3824,6 +4229,71 @@ "node": ">=4" } }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -3836,6 +4306,31 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -3909,12 +4404,40 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/synckit": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz", + "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==", + "dev": true, + "dependencies": { + "@pkgr/utils": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, + "node_modules/titleize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", + "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -3933,27 +4456,24 @@ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "node_modules/ts-api-utils": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", + "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, "engines": { - "node": ">= 6" + "node": ">=16.13.0" }, "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + "typescript": ">=4.2.0" } }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -4012,6 +4532,15 @@ "node": ">= 10.0.0" } }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -4021,15 +4550,6 @@ "punycode": "^2.1.0" } }, - "node_modules/util.inherits": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/util.inherits/-/util.inherits-1.0.3.tgz", - "integrity": "sha512-gMirHcfcq5D87nXDwbZqf5vl65S0mpMZBsHXJsXOO3Hc3G+JoQLwgaJa1h+PL7h3WhocnuLqoe8CuvMlztkyCA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/web-streams-polyfill": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", @@ -4079,6 +4599,133 @@ "node": ">= 8" } }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/package.json b/package.json index ec1ea7562..29879428f 100644 --- a/package.json +++ b/package.json @@ -36,28 +36,28 @@ "license": "Apache-2.0", "type": "module", "devDependencies": { - "@mdn/browser-compat-data": "^5.2.52", - "@octokit/rest": "^19.0.7", - "@types/node": "^18.15.13", - "@types/prettier": "^2.7.2", - "@types/webidl2": "^23.13.6", - "@typescript-eslint/eslint-plugin": "^5.59.0", - "@typescript-eslint/parser": "^5.59.0", - "@webref/css": "^6.5.2", - "@webref/elements": "^2.2.1", - "@webref/idl": "^3.33.1", - "bcd-idl-mapper": "^2.2.2", - "cpx2": "^4.2.3", - "danger": "^11.2.6", - "eslint": "^8.39.0", - "eslint-config-prettier": "^8.8.0", - "eslint-plugin-prettier": "^4.2.1", + "@mdn/browser-compat-data": "^5.4.0", + "@octokit/rest": "^20.0.2", + "@types/node": "^20.10.0", + "@types/prettier": "^2.7.3", + "@types/webidl2": "^24.4.3", + "@typescript-eslint/eslint-plugin": "^6.12.0", + "@typescript-eslint/parser": "^6.12.0", + "@webref/css": "^6.9.1", + "@webref/elements": "^2.2.2", + "@webref/idl": "^3.41.1", + "bcd-idl-mapper": "^2.3.0", + "cpx2": "^6.0.1", + "danger": "^11.3.0", + "eslint": "^8.54.0", + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-prettier": "^5.0.1", "jsonc-parser": "^3.2.0", - "node-fetch": "^3.3.1", - "prettier": "^2.8.7", + "node-fetch": "^3.3.2", + "prettier": "^3.1.0", "print-diff": "^2.0.0", "styleless-innertext": "^1.1.5", - "typescript": "^5.0.4", - "webidl2": "^24.2.2" + "typescript": "^5.3.2", + "webidl2": "^24.4.1" } } diff --git a/src/build.ts b/src/build.ts index 99672a9ad..faf5772d4 100644 --- a/src/build.ts +++ b/src/build.ts @@ -41,7 +41,7 @@ interface EmitOptions { async function emitFlavor( webidl: Browser.WebIdl, forceKnownTypes: Set, - options: EmitOptions + options: EmitOptions, ) { const exposed = getExposedTypes(webidl, options.global, forceKnownTypes); mergeNamesakes(exposed); @@ -49,22 +49,22 @@ async function emitFlavor( const result = emitWebIdl(exposed, options.global[0], ""); await fs.writeFile( new URL(`${options.name}.generated.d.ts`, options.outputFolder), - result + result, ); const iterators = emitWebIdl(exposed, options.global[0], "sync"); await fs.writeFile( new URL(`${options.name}.iterable.generated.d.ts`, options.outputFolder), - iterators + iterators, ); const asyncIterators = emitWebIdl(exposed, options.global[0], "async"); await fs.writeFile( new URL( `${options.name}.asynciterable.generated.d.ts`, - options.outputFolder + options.outputFolder, ), - asyncIterators + asyncIterators, ); } @@ -118,7 +118,7 @@ async function emitDom() { const transferables = widlStandardTypes.flatMap((st) => { return Object.values(st.browser.interfaces?.interface ?? {}).filter( - (i) => i.transferable + (i) => i.transferable, ); }); @@ -152,12 +152,12 @@ async function emitDom() { function mergeApiDescriptions( idl: Browser.WebIdl, - descriptions: Record + descriptions: Record, ) { const namespaces = arrayToMap( idl.namespaces!, (i) => i.name, - (i) => i + (i) => i, ); for (const [key, value] of Object.entries(descriptions)) { const target = idl.interfaces!.interface[key] || namespaces[key]; @@ -170,12 +170,12 @@ async function emitDom() { function mergeDeprecatedMessage( idl: Browser.WebIdl, - descriptions: Record + descriptions: Record, ) { const namespaces = arrayToMap( idl.namespaces!, (i) => i.name, - (i) => i + (i) => i, ); for (const [key, value] of Object.entries(descriptions)) { const target = idl.interfaces!.interface[key] || namespaces[key]; @@ -301,7 +301,7 @@ async function emitDom() { function prune( obj: Browser.WebIdl, - template: Partial + template: Partial, ): Browser.WebIdl { return filterByNull(obj, template); @@ -312,13 +312,13 @@ async function emitDom() { if (!obj[k]) { console.warn( `removedTypes.json has a redundant field ${k} in ${JSON.stringify( - template - ).slice(0, 100)}` + template, + ).slice(0, 100)}`, ); } else if (Array.isArray(template[k])) { if (!Array.isArray(obj[k])) { throw new Error( - `Removal template ${k} is an array but the original field is not` + `Removal template ${k} is an array but the original field is not`, ); } // template should include strings @@ -328,10 +328,10 @@ async function emitDom() { }); if (filtered[k].length !== obj[k].length - template[k].length) { const differences = template[k].filter( - (t: any) => !obj[k].includes(t) + (t: any) => !obj[k].includes(t), ); console.warn( - `removedTypes.json has redundant array items: ${differences}` + `removedTypes.json has redundant array items: ${differences}`, ); } } else if (template[k] !== null) { @@ -339,7 +339,7 @@ async function emitDom() { } else { if (obj[k].exposed === "") { console.warn( - `removedTypes.json removes ${k} that has already been disabled by BCD.` + `removedTypes.json removes ${k} that has already been disabled by BCD.`, ); } delete filtered[k]; diff --git a/src/build/bcd.ts b/src/build/bcd.ts index c7e787428..e6bc633f3 100644 --- a/src/build/bcd.ts +++ b/src/build/bcd.ts @@ -10,7 +10,7 @@ import { hasStableImplementation } from "./bcd/stable.js"; function hasMultipleImplementations(support: SupportBlock, prefix?: string) { const hasStableImpl = ( - browser: SimpleSupportStatement | SimpleSupportStatement[] | undefined + browser: SimpleSupportStatement | SimpleSupportStatement[] | undefined, ) => hasStableImplementation(browser, prefix); let count = 0; if (hasStableImpl(support.chrome) || hasStableImpl(support.chrome_android)) { @@ -32,7 +32,7 @@ function isSuitable( key: string, compat?: CompatStatement, parentKey?: string, - prefix?: string + prefix?: string, ) { const forceAlive = parentKey ? forceKeepAlive[parentKey]?.includes(key) diff --git a/src/build/bcd/mapper.ts b/src/build/bcd/mapper.ts index 4041dcd2d..b0b275388 100644 --- a/src/build/bcd/mapper.ts +++ b/src/build/bcd/mapper.ts @@ -35,7 +35,7 @@ function mergeCompatStatements(data?: Identifier): CompatStatement | undefined { const base = Object.fromEntries( Object.keys(statements[0].support).map((key) => { return [key, [] as SimpleSupportStatement[]]; - }) + }), ); for (const statement of statements) { @@ -56,13 +56,13 @@ function mergeCompatStatements(data?: Identifier): CompatStatement | undefined { function mapInterfaceLike( name: string, i: Browser.Interface, - mapper: (data: DataToMap) => any + mapper: (data: DataToMap) => any, ) { const data = i.mixin ? api.__mixins[name] : i.legacyNamespace - ? api[i.legacyNamespace][name] - : api[name]; + ? api[i.legacyNamespace][name] + : api[name]; const intCompat = data?.__compat; const mapped = mapper({ key: name, compat: intCompat, mixin: !!i.mixin }); if (!data) { @@ -90,7 +90,7 @@ function mapInterfaceLike( const properties = filterMapRecord( i.properties?.property, recordMapper, - needsStatic + needsStatic, ); if (i.iterator) { @@ -99,7 +99,7 @@ function mapInterfaceLike( // for iterable methods such as values(). Use that as a fallback. // See also: https://github.com/mdn/browser-compat-data/issues/6367 const iteratorCompat = mergeCompatStatements( - data[iteratorKey] ?? data["values"] + data[iteratorKey] ?? data["values"], ); const iteratorMapped = mapper({ key: iteratorKey, @@ -125,7 +125,7 @@ function mapInterfaceLike( export function mapToBcdCompat( webidl: Browser.WebIdl, - mapper: (data: DataToMap) => any + mapper: (data: DataToMap) => any, ): Browser.WebIdl | undefined { const map = (name: string, i: Browser.Interface) => mapInterfaceLike(name, i, mapper); @@ -133,7 +133,7 @@ export function mapToBcdCompat( const interfaces = filterMapRecord(webidl.interfaces?.interface, map); const mixins = filterMapRecord(webidl.mixins?.mixin, map); const namespaces = mapDefined(webidl.namespaces, (n) => - mapInterfaceLike(n.name, n, mapper) + mapInterfaceLike(n.name, n, mapper), ); if ( !isEmptyRecord(interfaces) || diff --git a/src/build/bcd/stable.ts b/src/build/bcd/stable.ts index 8a054336c..759448bc9 100644 --- a/src/build/bcd/stable.ts +++ b/src/build/bcd/stable.ts @@ -2,7 +2,7 @@ import { SimpleSupportStatement } from "@mdn/browser-compat-data/types"; export function hasStableImplementation( browser: SimpleSupportStatement | SimpleSupportStatement[] | undefined, - prefix?: string + prefix?: string, ): boolean { if (!browser) { return false; diff --git a/src/build/emitter.ts b/src/build/emitter.ts index 141b35843..296e9642c 100644 --- a/src/build/emitter.ts +++ b/src/build/emitter.ts @@ -49,7 +49,7 @@ function adjustParamName(name: string) { function getElements( a: Record> | undefined, - k: K + k: K, ): T[] { return a ? mapToArray(a[k]) : []; } @@ -135,27 +135,27 @@ function isEventHandler(p: Browser.Property) { export function emitWebIdl( webidl: Browser.WebIdl, global: string, - iterator: "" | "sync" | "async" + iterator: "" | "sync" | "async", ): string { // Global print target const printer = createTextWriter("\n"); const polluter = getElements(webidl.interfaces, "interface").find( - (i) => !!i.global + (i) => !!i.global, ); const allNonCallbackInterfaces = getElements( webidl.interfaces, - "interface" + "interface", ).concat(getElements(webidl.mixins, "mixin")); const allInterfaces = getElements(webidl.interfaces, "interface").concat( getElements(webidl.callbackInterfaces, "interface"), - getElements(webidl.mixins, "mixin") + getElements(webidl.mixins, "mixin"), ); const allInterfacesMap = toNameMap(allInterfaces); const allLegacyWindowAliases = allInterfaces.flatMap( - (i) => i.legacyWindowAlias + (i) => i.legacyWindowAlias, ); const allDictionariesMap = webidl.dictionaries?.dictionary ?? {}; const allEnumsMap = webidl.enums ? webidl.enums.enum : {}; @@ -176,7 +176,7 @@ export function emitWebIdl( const iNameToIDependList = arrayToMap( allNonCallbackInterfaces, (i) => i.name, - (i) => getExtendList(i.name).concat(getImplementList(i.name)) + (i) => getExtendList(i.name).concat(getImplementList(i.name)), ); /// Distinct event type list, used in the "createEvent" function @@ -186,10 +186,10 @@ export function emitWebIdl( .concat( allNonCallbackInterfaces .filter( - (i) => i.extends?.endsWith("Event") && i.name.endsWith("Event") + (i) => i.extends?.endsWith("Event") && i.name.endsWith("Event"), ) - .map((i) => i.name) - ) + .map((i) => i.name), + ), ).sort(); /// Interface name to its related eventhandler name list map @@ -204,30 +204,30 @@ export function emitWebIdl( (i) => { const fromProperties = mapDefined( mapToArray(i.properties?.property), - (p) => p.eventHandler + (p) => p.eventHandler, ); const fromEvents = (i.events?.event ?? []).map((e) => e.name); return distinct([...fromProperties, ...fromEvents]).sort(); - } + }, ); const iNameToConstList = arrayToMap( allInterfaces, (i) => i.name, - (i) => (!i.constants ? [] : mapToArray(i.constants.constant)) + (i) => (!i.constants ? [] : mapToArray(i.constants.constant)), ); // Map of interface.Name -> List of base interfaces with event handlers const iNameToEhParents = arrayToMap( allInterfaces, (i) => i.name, - getParentsWithEventHandler + getParentsWithEventHandler, ); const iNameToConstParents = arrayToMap( allInterfaces, (i) => i.name, - getParentsWithConstant + getParentsWithConstant, ); switch (iterator) { @@ -274,7 +274,7 @@ export function emitWebIdl( } function getParentsWithEventHandler( - i: Browser.Interface + i: Browser.Interface, ): Browser.Interface[] { function getParentEventHandler(i: Browser.Interface): Browser.Interface[] { const hasEventListener = iNameToEhList[i.name]?.length; @@ -298,7 +298,7 @@ export function emitWebIdl( getParentEventHandler(allInterfacesMap[iExtends])) || []; const mixinsWithEventHandler = getImplementList(i.name).flatMap((i) => - getParentEventHandler(allInterfacesMap[i]) + getParentEventHandler(allInterfacesMap[i]), ); return distinct(parentWithEventHandler.concat(mixinsWithEventHandler)); @@ -311,7 +311,7 @@ export function emitWebIdl( } const mixinsWithConstant = getImplementList(i.name).flatMap((i) => - getParentConstant(allInterfacesMap[i]) + getParentConstant(allInterfacesMap[i]), ); return distinct(mixinsWithConstant); @@ -475,7 +475,7 @@ export function emitWebIdl( m: Browser.Method, expectedMName: string, expectedMType: string, - expectedParamType: string | string[] + expectedParamType: string | string[], ) { if (!Array.isArray(expectedParamType)) { expectedParamType = [expectedParamType]; @@ -487,14 +487,14 @@ export function emitWebIdl( convertDomTypeToTsType(m.signature[0]) === expectedMType && m.signature[0].param?.length === expectedParamType.length && expectedParamType.every( - (pt, idx) => convertDomTypeToTsType(m.signature[0].param![idx]) === pt + (pt, idx) => convertDomTypeToTsType(m.signature[0].param![idx]) === pt, ) ); } function getNameWithTypeParameter( typeParameters: Browser.TypeParameter[] | undefined, - name: string + name: string, ) { function typeParameterWithDefault(type: Browser.TypeParameter) { return ( @@ -521,14 +521,14 @@ export function emitWebIdl( ]) ) { printer.printLine( - "createElement(tagName: K, options?: ElementCreationOptions): HTMLElementTagNameMap[K];" + "createElement(tagName: K, options?: ElementCreationOptions): HTMLElementTagNameMap[K];", ); printer.printLine("/** @deprecated */"); printer.printLine( - "createElement(tagName: K, options?: ElementCreationOptions): HTMLElementDeprecatedTagNameMap[K];" + "createElement(tagName: K, options?: ElementCreationOptions): HTMLElementDeprecatedTagNameMap[K];", ); printer.printLine( - "createElement(tagName: string, options?: ElementCreationOptions): HTMLElement;" + "createElement(tagName: string, options?: ElementCreationOptions): HTMLElement;", ); } } @@ -540,21 +540,21 @@ export function emitWebIdl( m, "getElementsByTagName", "HTMLCollection", - "string" + "string", ) ) { const paramName = m.signature[0].param![0].name; for (const mapName of tagNameMapNames) { printer.printLine( - `getElementsByTagName(${paramName}: K): HTMLCollectionOf<${mapName}[K]>;` + `getElementsByTagName(${paramName}: K): HTMLCollectionOf<${mapName}[K]>;`, ); } printer.printLine("/** @deprecated */"); printer.printLine( - `getElementsByTagName(${paramName}: K): HTMLCollectionOf;` + `getElementsByTagName(${paramName}: K): HTMLCollectionOf;`, ); printer.printLine( - `getElementsByTagName(${paramName}: string): HTMLCollectionOf;` + `getElementsByTagName(${paramName}: string): HTMLCollectionOf;`, ); } } @@ -567,15 +567,15 @@ export function emitWebIdl( const paramName = m.signature[0].param![0].name; for (const mapName of tagNameMapNames) { printer.printLine( - `querySelector(${paramName}: K): ${mapName}[K] | null;` + `querySelector(${paramName}: K): ${mapName}[K] | null;`, ); } printer.printLine("/** @deprecated */"); printer.printLine( - `querySelector(${paramName}: K): HTMLElementDeprecatedTagNameMap[K] | null;` + `querySelector(${paramName}: K): HTMLElementDeprecatedTagNameMap[K] | null;`, ); printer.printLine( - `querySelector(${paramName}: string): E | null;` + `querySelector(${paramName}: string): E | null;`, ); } } @@ -588,15 +588,15 @@ export function emitWebIdl( const paramName = m.signature[0].param![0].name; for (const mapName of tagNameMapNames) { printer.printLine( - `querySelectorAll(${paramName}: K): NodeListOf<${mapName}[K]>;` + `querySelectorAll(${paramName}: K): NodeListOf<${mapName}[K]>;`, ); } printer.printLine("/** @deprecated */"); printer.printLine( - `querySelectorAll(${paramName}: K): NodeListOf;` + `querySelectorAll(${paramName}: K): NodeListOf;`, ); printer.printLine( - `querySelectorAll(${paramName}: string): NodeListOf;` + `querySelectorAll(${paramName}: string): NodeListOf;`, ); } } @@ -614,10 +614,10 @@ export function emitWebIdl( function emitDeprecatedHTMLOrSVGElementTagNameMap() { printer.printLine( - "/** @deprecated Directly use HTMLElementTagNameMap or SVGElementTagNameMap as appropriate, instead. */" + "/** @deprecated Directly use HTMLElementTagNameMap or SVGElementTagNameMap as appropriate, instead. */", ); printer.printLine( - "type ElementTagNameMap = HTMLElementTagNameMap & Pick>;" + "type ElementTagNameMap = HTMLElementTagNameMap & Pick>;", ); printer.printLine(""); } @@ -704,7 +704,7 @@ export function emitWebIdl( ? convertDomTypeToTsReturnType(overload) : "void"; printer.printLine( - `type ${i.name} = ((${paramsString}) => ${returnType}) | { ${m.name}(${paramsString}): ${returnType}; };` + `type ${i.name} = ((${paramsString}) => ${returnType}) | { ${m.name}(${paramsString}): ${returnType}; };`, ); printer.printLine(""); @@ -722,7 +722,7 @@ export function emitWebIdl( function emitCallBackFunction(cb: Browser.CallbackFunction) { printer.printLine( - `interface ${getNameWithTypeParameter(cb.typeParameters, cb.name)} {` + `interface ${getNameWithTypeParameter(cb.typeParameters, cb.name)} {`, ); printer.increaseIndent(); emitSignatures(cb, "", "", printer.printLine, true); @@ -740,7 +740,7 @@ export function emitWebIdl( function emitEnum(e: Browser.Enum) { const values = e.value.slice().sort(); printer.printLine( - `type ${e.name} = ${values.map((v) => `"${v}"`).join(" | ")};` + `type ${e.name} = ${values.map((v) => `"${v}"`).join(" | ")};`, ); } @@ -765,8 +765,8 @@ export function emitWebIdl( function isCovariantEventHandler(i: Browser.Interface, p: Browser.Property) { return ( isEventHandler(p) && - iNameToEhParents[i.name].some((parent) => - parent.properties?.property.hasOwnProperty(p.name) + iNameToEhParents[i.name].some( + (parent) => parent.properties?.property.hasOwnProperty(p.name), ) ); } @@ -775,7 +775,7 @@ export function emitWebIdl( prefix: string, i: Browser.Interface, emitScope: EmitScope, - p: Browser.Property + p: Browser.Property, ) { emitComments(p, printer.printLine); @@ -818,15 +818,15 @@ export function emitWebIdl( throw new Error("Couldn't find [PutForwards]"); } const setterType = `${convertDomTypeToTsType( - forwardingProperty + forwardingProperty, )} | ${pType}`; printer.printLine( - `set ${p.name}${optionalModifier}(${p.putForwards}: ${setterType});` + `set ${p.name}${optionalModifier}(${p.putForwards}: ${setterType});`, ); } else { const readOnlyModifier = p.readonly && prefix === "" ? "readonly " : ""; printer.printLine( - `${prefix}${readOnlyModifier}${p.name}${optionalModifier}: ${pType};` + `${prefix}${readOnlyModifier}${p.name}${optionalModifier}: ${pType};`, ); } } @@ -843,15 +843,15 @@ export function emitWebIdl( secureContext?: boolean; mdnUrl?: string; }, - print: (s: string) => void + print: (s: string) => void, ) { const comments = entity.comment?.split("\n") ?? []; const deprecated = typeof entity.deprecated === "string" ? `@deprecated ${entity.deprecated}` : entity.deprecated - ? "@deprecated" - : null; + ? "@deprecated" + : null; if (deprecated) { comments.push(deprecated); } @@ -875,7 +875,7 @@ export function emitWebIdl( function emitProperties( prefix: string, emitScope: EmitScope, - i: Browser.Interface + i: Browser.Interface, ) { if (i.properties) { mapToArray(i.properties.property) @@ -889,7 +889,7 @@ export function emitWebIdl( function emitMethod( prefix: string, m: Browser.Method, - conflictedMembers: Set + conflictedMembers: Set, ) { function printLine(content: string) { if (m.name && conflictedMembers.has(m.name)) { @@ -922,7 +922,7 @@ export function emitWebIdl( prefix: string | undefined, name: string | undefined, printLine: (s: string) => void, - shouldResolvePromise?: boolean + shouldResolvePromise?: boolean, ) { const paramsString = s.param ? paramsToString(s.param) : ""; const resolved = shouldResolvePromise ? resolvePromise(s) : s; @@ -931,8 +931,8 @@ export function emitWebIdl( printLine( `${prefix || ""}${getNameWithTypeParameter( s.typeParameters, - name || "" - )}(${paramsString}): ${returnType};` + name || "", + )}(${paramsString}): ${returnType};`, ); } @@ -941,14 +941,14 @@ export function emitWebIdl( prefix: string, name: string, printLine: (s: string) => void, - shouldResolvePromise?: boolean + shouldResolvePromise?: boolean, ) { if (method.overrideSignatures) { method.overrideSignatures!.forEach((s) => printLine(`${prefix}${s};`)); } else if (method.signature) { method.additionalSignatures?.forEach((s) => printLine(`${prefix}${s};`)); method.signature.forEach((sig) => - emitSignature(sig, prefix, name, printLine, shouldResolvePromise) + emitSignature(sig, prefix, name, printLine, shouldResolvePromise), ); } } @@ -957,7 +957,7 @@ export function emitWebIdl( prefix: string, emitScope: EmitScope, i: Browser.Interface, - conflictedMembers: Set + conflictedMembers: Set, ) { // If prefix is not empty, then this is the global declare function addEventListener, we want to override this // Otherwise, this is EventTarget.addEventListener, we want to keep that. @@ -970,7 +970,7 @@ export function emitWebIdl( prefix !== "" && (m.name === "addEventListener" || m.name === "removeEventListener") - ) + ), ) .filter((m) => { // Already covered by `extends`. @@ -1011,13 +1011,13 @@ export function emitWebIdl( subtype.length > 1 ? subtype[0] : i.iterator.kind === "iterable" - ? "number" - : value; + ? "number" + : value; const name = i.typeParameters ? `${i.name}<${i.typeParameters!.map((p) => p.name).join(", ")}>` : i.name; printer.printLine( - `forEach(callbackfn: (value: ${value}, key: ${key}, parent: ${name}) => void, thisArg?: any): void;` + `forEach(callbackfn: (value: ${value}, key: ${key}, parent: ${name}) => void, thisArg?: any): void;`, ); } @@ -1025,7 +1025,7 @@ export function emitWebIdl( function emitMembers( prefix: string, emitScope: EmitScope, - i: Browser.Interface + i: Browser.Interface, ) { const conflictedMembers = extendConflictsBaseTypes[i.name] ? extendConflictsBaseTypes[i.name].memberNames @@ -1066,12 +1066,12 @@ export function emitWebIdl( if (i.name === "EventSource") { printer.printLine( - `${fPrefix}${addOrRemove}EventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | ${optionsType}): void;` + `${fPrefix}${addOrRemove}EventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | ${optionsType}): void;`, ); } printer.printLine( - `${fPrefix}${addOrRemove}EventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | ${optionsType}): void;` + `${fPrefix}${addOrRemove}EventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | ${optionsType}): void;`, ); } } @@ -1082,22 +1082,22 @@ export function emitWebIdl( prefix: string, addOrRemove: string, iParent: Browser.Interface, - optionsType: string + optionsType: string, ) { printer.printLine( `${prefix}${addOrRemove}EventListener(type: K, listener: (this: ${nameWithForwardedTypes( - i + i, )}, ev: ${ iParent.name - }EventMap[K]) => any, options?: boolean | ${optionsType}): void;` + }EventMap[K]) => any, options?: boolean | ${optionsType}): void;`, ); } function tryEmitTypedEventHandlerForInterface( addOrRemove: string, - optionsType: string + optionsType: string, ) { const hasEventListener = iNameToEhList[i.name]?.length; const ehParentCount = iNameToEhParents[i.name]?.length; @@ -1169,8 +1169,8 @@ export function emitWebIdl( printer.increaseIndent(); nc.signature.forEach((s) => printer.printLine( - `new(${s.param ? paramsToString(s.param) : ""}): ${i.name};` - ) + `new(${s.param ? paramsToString(s.param) : ""}): ${i.name};`, + ), ); printer.decreaseIndent(); printer.printLine(`};`); @@ -1195,15 +1195,15 @@ export function emitWebIdl( printer.printLineToStack( `interface ${getNameWithTypeParameter( i.typeParameters, - i.name - )} extends ${processedIName} {` + i.name, + )} extends ${processedIName} {`, ); } emitComments(i, printer.printLine); printer.print( - `interface ${getNameWithTypeParameter(i.typeParameters, processedIName)}` + `interface ${getNameWithTypeParameter(i.typeParameters, processedIName)}`, ); const finalExtends = [i.extends || "Object"] @@ -1221,7 +1221,7 @@ export function emitWebIdl( /// To decide if a given method is an indexer and should be emitted function shouldEmitIndexerSignature( i: Browser.Interface, - m: Browser.AnonymousMethod + m: Browser.AnonymousMethod, ) { if (m.getter && m.signature[0]?.param?.length === 1) { // TypeScript array indexer can only be number or string @@ -1238,18 +1238,18 @@ export function emitWebIdl( const mTypes = distinct( mapValues( i.methods?.method, - (m) => m.signature?.[0].type || "void" - ).filter((t) => t !== "void") || [] + (m) => m.signature?.[0].type || "void", + ).filter((t) => t !== "void") || [], ); const amTypes = distinct( i.anonymousMethods?.method .map((m) => m.signature[0].type) - .filter((t) => t !== "void") || [] + .filter((t) => t !== "void") || [], ); // |> Array.distinct const pTypes = distinct( mapValues(i.properties?.property, (m) => m.type).filter( - (t) => t !== "void" - ) || [] + (t) => t !== "void", + ) || [], ); // |> Array.distinct if ( @@ -1294,20 +1294,20 @@ export function emitWebIdl( mapToArray(i.methods?.method) .concat(i.anonymousMethods?.method || []) .filter( - (m) => shouldEmitIndexerSignature(i, m) && matchScope(emitScope, m) + (m) => shouldEmitIndexerSignature(i, m) && matchScope(emitScope, m), ) .forEach((m) => { const indexer = m.signature?.[0].param?.[0]; if (indexer) { printer.printLine( `[${indexer.name}: ${convertDomTypeToTsType( - indexer + indexer, )}]: ${convertDomTypeToTsType({ type: m.signature[0].type, overrideType: m.signature[0].overrideType, subtype: m.signature[0].subtype, nullable: undefined, - })};` + })};`, ); } }); @@ -1317,7 +1317,7 @@ export function emitWebIdl( function emitInterfaceEventMap(i: Browser.Interface) { function emitInterfaceEventMapEntry(eventName: string) { printer.printLine( - `"${eventName}": ${getEventTypeInInterface(eventName, i)};` + `"${eventName}": ${getEventTypeInInterface(eventName, i)};`, ); } @@ -1415,15 +1415,15 @@ export function emitWebIdl( printer.printLine( `interface ${getNameWithTypeParameter( dict.typeParameters, - dict.name - )} {` + dict.name, + )} {`, ); } else { printer.printLine( `interface ${getNameWithTypeParameter( dict.typeParameters, - dict.name - )} extends ${dict.extends} {` + dict.name, + )} extends ${dict.extends} {`, ); } printer.increaseIndent(); @@ -1433,7 +1433,7 @@ export function emitWebIdl( .forEach((m) => { emitComments(m, printer.printLine); printer.printLine( - `${m.name}${m.required ? "" : "?"}: ${convertDomTypeToTsType(m)};` + `${m.name}${m.required ? "" : "?"}: ${convertDomTypeToTsType(m)};`, ); }); } @@ -1457,8 +1457,8 @@ export function emitWebIdl( printer.printLine( `type ${getNameWithTypeParameter( typeDef.typeParameters, - typeDef.name - )} = ${convertDomTypeToTsType(typeDef)};` + typeDef.name, + )} = ${convertDomTypeToTsType(typeDef)};`, ); } @@ -1495,16 +1495,16 @@ export function emitWebIdl( if (global === "Window") { emitElementTagNameMap( "HTMLElementTagNameMap", - tagNameToEleName.htmlResult + tagNameToEleName.htmlResult, ); emitElementTagNameMap( "HTMLElementDeprecatedTagNameMap", - tagNameToEleName.htmlDeprecatedResult + tagNameToEleName.htmlDeprecatedResult, ); emitElementTagNameMap("SVGElementTagNameMap", tagNameToEleName.svgResult); emitElementTagNameMap( "MathMLElementTagNameMap", - tagNameToEleName.mathMLResult + tagNameToEleName.mathMLResult, ); emitDeprecatedHTMLOrSVGElementTagNameMap(); emitNamedConstructors(); @@ -1538,7 +1538,7 @@ export function emitWebIdl( function findIterableGetter() { const anonymousGetter = i.anonymousMethods?.method.find( - isIndexedPropertyGetter + isIndexedPropertyGetter, ); if (anonymousGetter) return anonymousGetter; @@ -1568,7 +1568,7 @@ export function emitWebIdl( function emitIterableDeclarationMethods( i: Browser.Interface, - subtypes: string[] + subtypes: string[], ) { let [keyType, valueType] = subtypes; if (!valueType) { @@ -1601,7 +1601,7 @@ export function emitWebIdl( function getIteratorExtends( iterator?: Browser.Iterator, - subtypes?: string[] + subtypes?: string[], ) { if (!iterator || !subtypes) { return ""; @@ -1610,8 +1610,8 @@ export function emitWebIdl( iterator.kind === "maplike" ? `Map<${subtypes[0]}, ${subtypes[1]}>` : iterator.kind === "setlike" - ? `Set<${subtypes[0]}>` - : undefined; + ? `Set<${subtypes[0]}>` + : undefined; if (!base) { return ""; } @@ -1627,12 +1627,12 @@ export function emitWebIdl( return type === "sequence" || !!sequenceTypedefMap[type]; } return s.param?.some( - (p) => !p.overrideType && typeIncludesSequence(p.type) + (p) => !p.overrideType && typeIncludesSequence(p.type), ); } function replaceTypedefsInSignatures( - signatures: Browser.Signature[] + signatures: Browser.Signature[], ): Browser.Signature[] { return signatures.map((s) => { const params = s.param!.map((p) => { @@ -1654,25 +1654,25 @@ export function emitWebIdl( .map((typedef) => ({ ...typedef, type: (typedef.type as Browser.Typed[]).filter( - (t) => t.type === "sequence" + (t) => t.type === "sequence", ), })) .filter((typedef) => typedef.type.length); const sequenceTypedefMap = arrayToMap( sequenceTypedefs, (t) => t.name, - (t) => t + (t) => t, ); const subtypes = getIteratorSubtypes(); const methodsWithSequence: Browser.Method[] = mapToArray( - i.methods ? i.methods.method : {} + i.methods ? i.methods.method : {}, ) .filter((m) => m.signature && !m.overrideSignatures) .map((m) => ({ ...m, signature: replaceTypedefsInSignatures( - m.signature.filter(hasSequenceArgument) + m.signature.filter(hasSequenceArgument), ), })) .filter((m) => m.signature.length) @@ -1685,7 +1685,7 @@ export function emitWebIdl( const iteratorExtends = getIteratorExtends(i.iterator, subtypes); const name = getNameWithTypeParameter( i.typeParameters, - extendConflictsBaseTypes[i.name] ? `${i.name}Base` : i.name + extendConflictsBaseTypes[i.name] ? `${i.name}Base` : i.name, ); printer.printLine(""); printer.printLine(`interface ${name} ${iteratorExtends}{`); @@ -1696,8 +1696,8 @@ export function emitWebIdl( if (subtypes && !iteratorExtends) { printer.printLine( `[Symbol.iterator](): IterableIterator<${stringifySingleOrTupleTypes( - subtypes - )}>;` + subtypes, + )}>;`, ); } if (i.iterator?.kind === "iterable" && subtypes) { @@ -1720,7 +1720,7 @@ export function emitWebIdl( function emitAsyncIterableDeclarationMethods( i: Browser.Interface, subtypes: string[], - paramsString: string + paramsString: string, ) { let methods; if (subtypes.length === 1) { @@ -1766,7 +1766,7 @@ export function emitWebIdl( const name = getNameWithTypeParameter( i.typeParameters, - extendConflictsBaseTypes[i.name] ? `${i.name}Base` : i.name + extendConflictsBaseTypes[i.name] ? `${i.name}Base` : i.name, ); const paramsString = i.iterator!.param ? paramsToString(i.iterator!.param) @@ -1777,8 +1777,8 @@ export function emitWebIdl( printer.printLine( `[Symbol.asyncIterator](${paramsString}): AsyncIterableIterator<${stringifySingleOrTupleTypes( - subtypes - )}>;` + subtypes, + )}>;`, ); emitAsyncIterableDeclarationMethods(i, subtypes, paramsString); diff --git a/src/build/expose.ts b/src/build/expose.ts index 8fcbeb4e2..0031d256c 100644 --- a/src/build/expose.ts +++ b/src/build/expose.ts @@ -29,7 +29,7 @@ class LoggedSet extends Set { export function getExposedTypes( webidl: Browser.WebIdl, target: string[], - forceKnownTypes: Set + forceKnownTypes: Set, ): Browser.WebIdl { const forceKnownTypesLogged = new LoggedSet(forceKnownTypes); @@ -38,10 +38,10 @@ export function getExposedTypes( if (webidl.interfaces) { filtered.interfaces!.interface = deepFilter( webidl.interfaces.interface, - (o) => exposesTo(o, target) + (o) => exposesTo(o, target), ); const unexposedInterfaces = mapToArray(webidl.interfaces.interface).filter( - (i) => !exposesTo(i, target) + (i) => !exposesTo(i, target), ); for (const i of unexposedInterfaces) { unexposedTypes.add(i.name); @@ -49,7 +49,7 @@ export function getExposedTypes( } if (webidl.namespaces) { filtered.namespaces = deepFilter(webidl.namespaces, (o) => - exposesTo(o, target) + exposesTo(o, target), ); } @@ -60,12 +60,13 @@ export function getExposedTypes( const mixins = deepFilter(webidl.mixins.mixin, (o) => exposesTo(o, target)); filtered.mixins!.mixin = filterProperties( mixins, - (m: Browser.Interface) => allIncludes.includes(m.name) && !isEmptyMixin(m) + (m: Browser.Interface) => + allIncludes.includes(m.name) && !isEmptyMixin(m), ); for (const value of Object.values(filtered.interfaces!.interface || {})) { if (value.implements) { value.implements = value.implements.filter( - (i) => !!filtered.mixins!.mixin[i] + (i) => !!filtered.mixins!.mixin[i], ); } } @@ -78,8 +79,8 @@ export function getExposedTypes( arrayToMap( filtered.namespaces!, (i) => i.name, - (i) => i - ) + (i) => i, + ), ), ]); const isKnownName = (o: { name: string }) => @@ -87,7 +88,7 @@ export function getExposedTypes( if (webidl.typedefs) { const referenced = webidl.typedefs.typedef.filter( - (t) => knownIDLTypes.has(t.name) || forceKnownTypesLogged.has(t.name) + (t) => knownIDLTypes.has(t.name) || forceKnownTypesLogged.has(t.name), ); const { exposed, removed } = filterTypedefs(referenced, unexposedTypes); removed.forEach((s) => unexposedTypes.add(s)); @@ -97,17 +98,17 @@ export function getExposedTypes( if (webidl.callbackFunctions) filtered.callbackFunctions!.callbackFunction = filterProperties( webidl.callbackFunctions!.callbackFunction, - isKnownName + isKnownName, ); if (webidl.callbackInterfaces) filtered.callbackInterfaces!.interface = filterProperties( webidl.callbackInterfaces!.interface, - isKnownName + isKnownName, ); if (webidl.dictionaries) filtered.dictionaries!.dictionary = filterProperties( webidl.dictionaries.dictionary, - isKnownName + isKnownName, ); if (webidl.enums) filtered.enums!.enum = filterProperties(webidl.enums.enum, isKnownName); @@ -127,7 +128,7 @@ export function getExposedTypes( */ function filterTypedefs( typedefs: Browser.TypeDef[], - unexposedTypes: Set + unexposedTypes: Set, ): { exposed: Browser.TypeDef[]; removed: Set } { const exposed: Browser.TypeDef[] = []; const removed = new Set(); @@ -147,7 +148,7 @@ function filterTypedefs( } else if (Array.isArray(typedef.type)) { const filteredType = filterUnexposedTypeFromUnion( typedef.type, - unexposedTypes + unexposedTypes, ); if (!filteredType.length) { removed.add(typedef.name); @@ -169,7 +170,7 @@ function filterTypedefs( */ function deepFilterUnexposedTypes( webidl: Browser.WebIdl, - unexposedTypes: Set + unexposedTypes: Set, ) { return deepClone(webidl, (o) => { if (Array.isArray(o.type)) { @@ -224,12 +225,12 @@ function deepFilterUnexposedTypes( function filterUnexposedType( type: T, - unexposedTypes: Set + unexposedTypes: Set, ) { if (Array.isArray(type.type)) { const filteredUnion = filterUnexposedTypeFromUnion( type.type, - unexposedTypes + unexposedTypes, ); if (filteredUnion.length) { return { ...type, type: flattenType(filteredUnion) }; @@ -241,7 +242,7 @@ function filterUnexposedType( function filterUnexposedTypeFromUnion( union: Browser.Typed[], - unexposedTypes: Set + unexposedTypes: Set, ): Browser.Typed[] { const result: Browser.Typed[] = []; for (const type of union) { diff --git a/src/build/helpers.ts b/src/build/helpers.ts index 329dc2959..50cfccc4e 100644 --- a/src/build/helpers.ts +++ b/src/build/helpers.ts @@ -64,12 +64,12 @@ export const baseTypeConversionMap = new Map([ export function deepFilter( obj: T, - fn: (o: any, n: string | undefined) => boolean + fn: (o: any, n: string | undefined) => boolean, ): T { if (typeof obj === "object") { if (Array.isArray(obj)) { return mapDefined(obj, (e) => - fn(e, undefined) ? deepFilter(e, fn) : undefined + fn(e, undefined) ? deepFilter(e, fn) : undefined, ) as any as T; } else { const result: any = {}; @@ -86,7 +86,7 @@ export function deepFilter( export function filterProperties( obj: Record, - fn: (o: T) => boolean + fn: (o: T) => boolean, ): Record { const result: Record = {}; for (const e in obj) { @@ -131,7 +131,7 @@ export function merge(target: T, src: T, shallow?: boolean): T { } else { if (targetProp === srcProp && k !== "name") { console.warn( - `Redundant merge value ${targetProp} in ${JSON.stringify(src)}` + `Redundant merge value ${targetProp} in ${JSON.stringify(src)}`, ); } target[k] = merge(targetProp, srcProp, shallow); @@ -147,7 +147,7 @@ export function merge(target: T, src: T, shallow?: boolean): T { function mergeNamedArrays( srcProp: T[], - targetProp: T[] + targetProp: T[], ) { const map: any = {}; for (const e1 of srcProp) { @@ -178,7 +178,7 @@ export function mapToArray(m?: Record): T[] { export function arrayToMap( array: ReadonlyArray, makeKey: (value: T) => string, - makeValue: (value: T) => U + makeValue: (value: T) => U, ): Record { const result: Record = {}; for (const value of array) { @@ -189,14 +189,14 @@ export function arrayToMap( export function mapValues( obj: Record | undefined, - fn: (o: T) => U + fn: (o: T) => U, ): U[] { return Object.keys(obj || {}).map((k) => fn(obj![k])); } export function mapDefined( array: ReadonlyArray | undefined, - mapFn: (x: T, i: number) => U | undefined + mapFn: (x: T, i: number) => U | undefined, ): U[] { const result: U[] = []; if (array) { @@ -211,7 +211,7 @@ export function mapDefined( } export function toNameMap( - array: T[] + array: T[], ): Record { const result: Record = {}; for (const value of array) { @@ -254,7 +254,7 @@ export function getEmptyWebIDL(): Browser.WebIdl { export function resolveExposure( obj: Record, exposure: string, - override?: boolean + override?: boolean, ): void { if (!exposure) { throw new Error("No exposure set"); @@ -308,7 +308,7 @@ function getNonValueTypeMap(webidl: Browser.WebIdl) { export function followTypeReferences( webidl: Browser.WebIdl, - filteredInterfaces: Record + filteredInterfaces: Record, ): Set { const set = new Set(); const map = getNonValueTypeMap(webidl); diff --git a/src/build/legacy-namespace.ts b/src/build/legacy-namespace.ts index c4caaae83..6000ae6c8 100644 --- a/src/build/legacy-namespace.ts +++ b/src/build/legacy-namespace.ts @@ -2,7 +2,7 @@ import * as Browser from "./types.js"; import { mapToArray, arrayToMap } from "./helpers.js"; export function collectLegacyNamespaceTypes( - webidl: Browser.WebIdl + webidl: Browser.WebIdl, ): Browser.Interface[] { if (!webidl.namespaces) { return []; @@ -11,7 +11,7 @@ export function collectLegacyNamespaceTypes( const namespaceMap: Record = arrayToMap( webidl.namespaces, (i) => i.name, - (i) => i + (i) => i, ); for (const i of mapToArray(webidl.interfaces!.interface)) { if (i.legacyNamespace) { diff --git a/src/build/utils/fs.ts b/src/build/utils/fs.ts index 0e344aaa8..d4c149b1e 100644 --- a/src/build/utils/fs.ts +++ b/src/build/utils/fs.ts @@ -1,7 +1,7 @@ import { readFile } from "fs/promises"; export async function tryReadFile( - path: string | URL + path: string | URL, ): Promise { try { return await readFile(path, "utf-8"); diff --git a/src/build/utils/map.ts b/src/build/utils/map.ts index 3da754691..552d48429 100644 --- a/src/build/utils/map.ts +++ b/src/build/utils/map.ts @@ -1,7 +1,7 @@ export function addToArrayMap( map: Map, name: string, - value: T + value: T, ): void { const array = map.get(name) || []; array.push(value); @@ -11,7 +11,7 @@ export function addToArrayMap( export function addToStringMap( map: Map, name: string, - value: string + value: string, ): void { const old = map.get(name) || ""; map.set(name, `${old}\n${value}\n`); diff --git a/src/build/utils/record.ts b/src/build/utils/record.ts index 09ed6f361..d93065d84 100644 --- a/src/build/utils/record.ts +++ b/src/build/utils/record.ts @@ -1,7 +1,7 @@ export function filterMapRecord( object: Record | undefined, mapper: (key: string, value: T) => V | undefined, - needsStatic?: boolean + needsStatic?: boolean, ): Record | undefined { if (!object) { return; @@ -12,8 +12,8 @@ export function filterMapRecord( needsStatic === false ? key : needsStatic === true || ("static" in value && value.static) - ? `${key}_static` - : key; + ? `${key}_static` + : key; const newValue = mapper(mdnKey, value); if (newValue !== undefined) { result[key] = newValue; diff --git a/src/build/webref/css.ts b/src/build/webref/css.ts index 26e47facc..37f9203f6 100644 --- a/src/build/webref/css.ts +++ b/src/build/webref/css.ts @@ -10,8 +10,8 @@ export function generateWebIdlFromCssProperties(properties: string[]): string { .map( (property) => `\n [CEReactions] attribute [LegacyNullToEmptyString] CSSOMString ${hyphenToCamelCase( - property - )};` + property, + )};`, ) .join("")}\n};`; } diff --git a/src/build/webref/elements.ts b/src/build/webref/elements.ts index 0f519a029..7e2b6ed44 100644 --- a/src/build/webref/elements.ts +++ b/src/build/webref/elements.ts @@ -26,8 +26,8 @@ export async function getInterfaceElementMergeData(): Promise { const namespace = key.startsWith("SVG") ? "SVG" : key.startsWith("MathML") - ? "MathML" - : undefined; + ? "MathML" + : undefined; data.interfaces!.interface[key] = { element: elements.map((el) => ({ namespace, diff --git a/src/build/widlprocess.ts b/src/build/widlprocess.ts index bc64e525a..675344e1a 100644 --- a/src/build/widlprocess.ts +++ b/src/build/widlprocess.ts @@ -43,7 +43,7 @@ export function convert(text: string, commentMap: Record) { addComments( browser.callbackFunctions!.callbackFunction[rootType.name], commentMap, - rootType.name + rootType.name, ); } else if (rootType.type === "dictionary") { const converted = convertDictionary(rootType, commentMap); @@ -95,7 +95,7 @@ function getExtAttr(extAttrs: webidl2.ExtendedAttribute[], name: string) { function getExtAttrConcatenated( extAttrs: webidl2.ExtendedAttribute[], - name: string + name: string, ) { const extAttr = getExtAttr(extAttrs, name); if (extAttr.length) { @@ -105,7 +105,7 @@ function getExtAttrConcatenated( function convertInterface( i: webidl2.InterfaceType, - commentMap: Record + commentMap: Record, ) { const result = convertInterfaceCommon(i, commentMap); if (i.inheritance) { @@ -116,7 +116,7 @@ function convertInterface( function convertInterfaceMixin( i: webidl2.InterfaceMixinType, - commentMap: Record + commentMap: Record, ) { const result = convertInterfaceCommon(i, commentMap); result.mixin = true; @@ -128,7 +128,7 @@ function addComments( obj: any, commentMap: Record, container: string, - member?: string + member?: string, ) { const key = container.toLowerCase() + (member ? "-" + member.toLowerCase() : ""); @@ -142,7 +142,7 @@ function convertInterfaceCommon( | webidl2.InterfaceType | webidl2.InterfaceMixinType | webidl2.CallbackInterfaceType, - commentMap: Record + commentMap: Record, ) { const result: Browser.Interface = { name: i.name, @@ -174,7 +174,7 @@ function convertInterfaceCommon( result.constants!.constant[member.name], commentMap, i.name, - member.name + member.name, ); } else if (member.type === "attribute") { const { properties } = result; @@ -223,7 +223,7 @@ function convertInterfaceCommon( function getConstructor( members: webidl2.IDLInterfaceMemberType[], - parent: string + parent: string, ) { const constructor: Browser.Constructor = { signature: [], @@ -243,7 +243,7 @@ function getConstructor( function getOldStyleConstructor( extAttrs: webidl2.ExtendedAttribute[], - parent: string + parent: string, ) { const constructor: Browser.Constructor = { signature: [], @@ -263,7 +263,7 @@ function getOldStyleConstructor( function getLegacyFactoryFunction( extAttrs: webidl2.ExtendedAttribute[], - parent: string + parent: string, ): Browser.NamedConstructor | undefined { for (const extAttr of extAttrs) { if ( @@ -288,14 +288,14 @@ function getLegacyFactoryFunction( function convertOperation( operation: webidl2.OperationMemberType, - inheritedExposure: string | undefined + inheritedExposure: string | undefined, ): Browser.AnonymousMethod | Browser.Method { const isStringifier = operation.special === "stringifier"; const type = operation.idlType ? convertIdlType(operation.idlType) : isStringifier - ? { type: "DOMString" } - : undefined; + ? { type: "DOMString" } + : undefined; if (!type) { throw new Error("Unexpected anonymous operation"); } @@ -318,7 +318,7 @@ function convertOperation( } function convertCallbackFunctions( - c: webidl2.CallbackType + c: webidl2.CallbackType, ): Browser.CallbackFunction { return { name: c.name, @@ -346,7 +346,7 @@ function convertArgument(arg: webidl2.Argument): Browser.Param { function convertAttribute( attribute: webidl2.AttributeMemberType, - inheritedExposure: string | undefined + inheritedExposure: string | undefined, ): Browser.Property { const isEventHandler = typeof attribute.idlType.idlType === "string" && @@ -367,7 +367,7 @@ function convertAttribute( } function convertConstantMember( - constant: webidl2.ConstantMemberType + constant: webidl2.ConstantMemberType, ): Browser.Constant { return { name: constant.name, @@ -398,7 +398,7 @@ function convertConstantValue(value: webidl2.ValueDescription): string { function convertNamespace( namespace: webidl2.NamespaceType, - commentMap: Record + commentMap: Record, ) { const result: Browser.Interface = { name: namespace.name, @@ -412,13 +412,13 @@ function convertNamespace( if (member.type === "attribute") { result.properties!.property[member.name] = convertAttribute( member, - result.exposed + result.exposed, ); addComments( result.properties!.property[member.name], commentMap, namespace.name, - member.name + member.name, ); } else if (member.type === "operation" && member.idlType) { const operation = convertOperation(member, result.exposed); @@ -433,7 +433,7 @@ function convertNamespace( method[member.name], commentMap, namespace.name, - member.name + member.name, ); } } @@ -444,7 +444,7 @@ function convertNamespace( function convertDictionary( dictionary: webidl2.DictionaryType, - commentsMap: Record + commentsMap: Record, ) { const result: Browser.Dictionary = { name: dictionary.name, @@ -459,7 +459,7 @@ function convertDictionary( result.members.member[member.name], commentsMap, dictionary.name, - member.name + member.name, ); } addComments(result, commentsMap, dictionary.name); @@ -467,7 +467,7 @@ function convertDictionary( } function convertDictionaryMember( - member: webidl2.DictionaryMemberType + member: webidl2.DictionaryMemberType, ): Browser.Member { return { name: member.name, @@ -504,8 +504,8 @@ function convertIdlType(i: webidl2.IDLTypeDescription): Browser.Typed { subtype: !Array.isArray(i.idlType) ? convertIdlType(i.idlType) : i.idlType.length === 1 - ? convertIdlType(i.idlType[0]) - : i.idlType.map(convertIdlType), + ? convertIdlType(i.idlType[0]) + : i.idlType.map(convertIdlType), nullable: i.nullable, }; } diff --git a/src/changelog.ts b/src/changelog.ts index 5a53f8add..14fe82edf 100644 --- a/src/changelog.ts +++ b/src/changelog.ts @@ -17,7 +17,7 @@ function mapInterfaceToMembers(interfaces: ts.InterfaceDeclaration[]) { for (const decl of interfaces) { interfaceToMemberMap.set( decl.name.text, - decl.members.map((m) => m.name?.getText()).filter((n) => n) as string[] + decl.members.map((m) => m.name?.getText()).filter((n) => n) as string[], ); } return interfaceToMemberMap; @@ -28,7 +28,7 @@ function extractTypesFromFile(file: string) { "dom", file, ts.ScriptTarget.ES2015, - /*setParentNodes */ true + /*setParentNodes */ true, ); const interfaceNames = source.statements @@ -36,10 +36,10 @@ function extractTypesFromFile(file: string) { .map((v) => v.declarationList.declarations[0].name.getText(source)); const tsInterfacedecls = source.statements.filter(ts.isInterfaceDeclaration); const idlInterfaceDecls = tsInterfacedecls.filter((i) => - interfaceNames.includes(i.name.text) + interfaceNames.includes(i.name.text), ); const otherDecls = tsInterfacedecls.filter( - (i) => !interfaceNames.includes(i.name.text) + (i) => !interfaceNames.includes(i.name.text), ); const interfaceToMemberMap = mapInterfaceToMembers(idlInterfaceDecls); @@ -74,11 +74,11 @@ function compareSet(x: Set, y: Set) { function diffTypes(previous: string, current: string) { function diff( previousMap: Map, - currentMap: Map + currentMap: Map, ) { const { added, removed, common } = compareSet( new Set(previousMap.keys()), - new Set(currentMap.keys()) + new Set(currentMap.keys()), ); const modified = new Map< string, @@ -101,7 +101,7 @@ function diffTypes(previous: string, current: string) { return { interfaces: diff( previousTypes.interfaceToMemberMap, - currentTypes.interfaceToMemberMap + currentTypes.interfaceToMemberMap, ), others: diff(previousTypes.otherToMemberMap, currentTypes.otherToMemberMap), }; @@ -150,7 +150,7 @@ export function generateDefaultFromRecentTag(): string { export function generateChangelogFrom( previous: string, - current: string + current: string, ): string { const { interfaces: { added, removed, modified }, diff --git a/src/test.ts b/src/test.ts index 6a5a7e6f9..c490a53d2 100644 --- a/src/test.ts +++ b/src/test.ts @@ -7,7 +7,7 @@ const baselineFolder = new URL("../baselines/", import.meta.url); const outputFolder = new URL("../generated/", import.meta.url); const tscPath = new URL( "../node_modules/typescript/lib/tsc.js", - import.meta.url + import.meta.url, ); function normalizeLineEndings(text: string): string { @@ -21,10 +21,10 @@ function compareToBaselines() { } const baseline = normalizeLineEndings( - fs.readFileSync(new URL(file, baselineFolder)).toString() + fs.readFileSync(new URL(file, baselineFolder)).toString(), ); const generated = normalizeLineEndings( - fs.readFileSync(new URL(file, outputFolder)).toString() + fs.readFileSync(new URL(file, outputFolder)).toString(), ); if (baseline !== generated) { console.error(`Test failed: '${file}' is different from baseline file.`); @@ -39,10 +39,10 @@ function compileGeneratedFiles(lib: string, ...files: string[]) { try { child_process.execSync( `node ${fileURLToPath( - tscPath + tscPath, )} --strict --lib ${lib} --types --noEmit ${files .map((file) => fileURLToPath(new URL(file, outputFolder))) - .join(" ")}` + .join(" ")}`, ); } catch (e: any) { console.error(`Test failed: could not compile '${files.join(",")}':`); @@ -60,56 +60,56 @@ function test() { compileGeneratedFiles( "es6", "dom.generated.d.ts", - "dom.iterable.generated.d.ts" + "dom.iterable.generated.d.ts", ) && compileGeneratedFiles( "es2018", "dom.generated.d.ts", - "dom.asynciterable.generated.d.ts" + "dom.asynciterable.generated.d.ts", ) && compileGeneratedFiles("es5", "webworker.generated.d.ts") && compileGeneratedFiles( "es6", "webworker.generated.d.ts", - "webworker.iterable.generated.d.ts" + "webworker.iterable.generated.d.ts", ) && compileGeneratedFiles( "es2018", "webworker.generated.d.ts", - "webworker.asynciterable.generated.d.ts" + "webworker.asynciterable.generated.d.ts", ) && compileGeneratedFiles("es5", "sharedworker.generated.d.ts") && compileGeneratedFiles( "es6", "sharedworker.generated.d.ts", - "sharedworker.iterable.generated.d.ts" + "sharedworker.iterable.generated.d.ts", ) && compileGeneratedFiles( "es2018", "sharedworker.generated.d.ts", - "sharedworker.asynciterable.generated.d.ts" + "sharedworker.asynciterable.generated.d.ts", ) && compileGeneratedFiles("es5", "serviceworker.generated.d.ts") && compileGeneratedFiles( "es6", "serviceworker.generated.d.ts", - "serviceworker.iterable.generated.d.ts" + "serviceworker.iterable.generated.d.ts", ) && compileGeneratedFiles( "es2018", "serviceworker.generated.d.ts", - "serviceworker.asynciterable.generated.d.ts" + "serviceworker.asynciterable.generated.d.ts", ) && compileGeneratedFiles("es5", "audioworklet.generated.d.ts") && compileGeneratedFiles( "es6", "audioworklet.generated.d.ts", - "audioworklet.iterable.generated.d.ts" + "audioworklet.iterable.generated.d.ts", ) && compileGeneratedFiles( "es2018", "audioworklet.generated.d.ts", - "audioworklet.asynciterable.generated.d.ts" + "audioworklet.asynciterable.generated.d.ts", ) ) { console.log("All tests passed."); From 8c36095e94711766420b90061d4a98eef6ecd26b Mon Sep 17 00:00:00 2001 From: Kagami Sascha Rosylight Date: Mon, 27 Nov 2023 10:47:48 +0100 Subject: [PATCH 2/3] Update record.ts --- src/build/utils/record.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/build/utils/record.ts b/src/build/utils/record.ts index 078733f56..522ac2648 100644 --- a/src/build/utils/record.ts +++ b/src/build/utils/record.ts @@ -1,7 +1,7 @@ export function filterMapRecord( object: Record | undefined, mapper: (key: string, value: T) => V | undefined, - forNamespace?: boolean + forNamespace?: boolean, ): Record | undefined { if (!object) { return; From ef44b29748ba25bfb4cc70bdec40a32da75ae5c2 Mon Sep 17 00:00:00 2001 From: Kagami Sascha Rosylight Date: Mon, 27 Nov 2023 10:49:33 +0100 Subject: [PATCH 3/3] Update mapper.ts --- src/build/bcd/mapper.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/build/bcd/mapper.ts b/src/build/bcd/mapper.ts index 1355fe73b..fd50b1041 100644 --- a/src/build/bcd/mapper.ts +++ b/src/build/bcd/mapper.ts @@ -87,7 +87,7 @@ function mapInterfaceLike( const properties = filterMapRecord( i.properties?.property, recordMapper, - i.namespace + i.namespace, ); if (i.iterator) {